excel - 如何查找后期绑定参考的名称
问题描述
我正在尝试对我用 Excel 编写的应用程序进行防弹。为此,我想尽可能添加后期绑定引用。不幸的是,我不知道如何确定我应该为所有引用使用的正确名称。
例如,文件系统对象可以这样引用......
Dim oFs as Object
Set oFs = CreateObject("Scripting.FileSystemObject")
通过转到此处的 Microsoft 文档页面,我可以发现“Scripting.FileSystemObject”是无需谷歌搜索即可使用的正确名称。但是对象库参考中不存在这样的页面。那么如何找出“Microsoft Office 16.0 对象库”的正确名称呢?
解决方案
当您在 Scripting.FileSystem 上使用 CreateObject 时,您正在创建一个 FileSystem 对象。定义 FileSystem 对象的类位于脚本类型库中。换句话说,您不是在创建 Scripting 对象。(我很确定你知道这一点,我只是在设置下一部分。)
如果 Office 类型库中有任何对象,您可以使用
CreateObject("Office.SomeObject")
但那里没有任何对象,所以没有什么可创建的。如果您在注册表中搜索您在工具 - 参考(如 Microsoft Office 16.0 对象库)中看到的标签,您可以看到主互操作程序集名称。我一直认为该名称的第一部分是您在 CreateObject 中使用的名称,但现在我不确定。如果搜索 Excel 16.0 Object Library,可以看到其互操作名称的第一部分是 Excel。如果你想后期绑定 Excel,你会使用 Excel.Application。但是当我尝试查找 scrrun.dll 的互操作名称时,我找不到它。它必须在注册表中,但仅搜索“脚本”将花费一生。
由于 Office 中没有任何对象,因此无需创建任何内容。但是 typlib 中的内容是常量和枚举。要后期绑定那些你只需声明变量或创建自己的枚举。
简而言之,您不需要创建 Office 对象,而且对于将字符串传递给 CreateObject 的权威来源在哪里我没有任何帮助(但我仍在押注注册表)。如果你找到它,请告诉我们。
推荐阅读
- python - 将本地 unix 时间转换为 UTC unix 时间的问题
- image - 如何解决“ValueError:找到昏暗 4 的数组。估计器预期 <= 2。”?
- r - 将向量的所有元素乘以R中for循环中的每个元素
- javascript - Javascript - 单击不同按钮时单击具有类或 id 的多个元素
- aws-lambda - CloudWatch Insights:获取错误 lambda 的日志
- python - 每个测试禁用带有注释或内联的 Pytest 捕获
- javascript - Javascript如何在使用时区时逐日验证getDay
- git - 如何修复 gitignore 中的 .vscode 跟踪
- python-3.x - 使用鼠标事件向绘图添加一个点
- c# - Unity 为什么我的 FPS 暂停菜单不会停止相机旋转?