excel - CallByName 不适用于所有对象/函数
问题描述
在 VBA 中,大多数 Excel 函数可以通过Application.WorksheetFunction
或VBA
举个sinh
例子sin
:
工作表功能
Debug.Print Application.WorksheetFunction.sinh(5)
74,2032105777888
VBA 函数
Debug.Print VBA.sin(5)
-0,958924274663138
问题:
为什么不适CallByName
用于 Worksheet 函数和 VBA 函数?
工作表功能
Debug.Print CallByName(Application.WorksheetFunction, "sinh", VbGet, 5)
74,2032105777888
VBA 函数
Debug.Print CallByName(VBA, "sin", VbGet, 5)
解决方案
在 VBA 中,大多数 Excel 函数都可以通过 Application.WorksheetFunction 或 VBA 访问
不可以。Excel 函数可以作为针对全局Excel.Application
对象的后期绑定成员调用来访问(如果您托管在 Excel 中),然后一些函数在接口中具有早期绑定“等效”(错误处理策略需要不同)Excel.WorksheetObject
(你Application.WorksheetFunction
确实从那里得到它)。
库的成员VBA
,无论是否为全局范围,都与 Excel 无关:每个 VBA 项目都引用 VBA 标准库,无论其宿主应用程序(Word、Excel、Access、...SolidWorks、Sage300 等.)。如果一个函数看起来在 VBA 和 Excel 库中都存在,那么 VBA 函数可能/理论上应该是首选。
使用对象浏览器 (F2) 来发现 VBA 标准库的成员,包括并且可能尤其是它的Math
模块。
推荐阅读
- javascript - ChartJS 为每个 JSON 对象分隔图表,而不是在悬停时
- hadoop - 提高 HDFS 中名称和数据节点的效率
- python - 示例 python 脚本或 curl 以将 ION 文件 (xml) 作为 MWS 提要提交
- python - py-elasticsearch中的无痛脚本抛出连接错误
- c# - 如何从另一个系统调用我的 Function App API?
- heroku - Heroku 蛞蝓大小
- ios - iOS 目标 c 框架在模拟器中不起作用
- c# - 防止另一个触发器统一触发
- c - 程序以信号 8 终止,blosc 算术异常
- android-studio - android studio 中未显示所有插件