在VBA中,大多数Excel函数可以通过Application.WorksheetFunction
或VBA
来访问
以sinh
和sin
为例:
Debug.Print Application.WorksheetFunction.sinh(5)
74,2032105777888
Debug.Print VBA.sin(5)
-0,958924274663138
为什么CallByName
在工作表功能和VBA功能上都不起作用?
Debug.Print CallByName(Application.WorksheetFunction, "sinh", VbGet, 5)
74,2032105777888
Debug.Print CallByName(VBA, "sin", VbGet, 5)
答案 0 :(得分:3)
在VBA中,大多数Excel函数都可以通过Application.WorksheetFunction或VBA访问
不。通过对全局Excel.Application
对象的后期绑定成员调用(如果您托管在Excel中),可以访问Excel函数,然后其中一些具有早期绑定的“等效”(错误处理策略将有所不同)。 Excel.WorksheetObject
界面(实际上是从Application.WorksheetFunction
获得的。)
VBA
库的成员(无论是否具有全局作用域)与Excel无关:每个VBA项目都引用VBA标准库,无论其宿主应用程序(Word,Excel,Access, ... SolidWorks,Sage300等)。如果某个函数看起来在VBA和Excel库中都存在,则应该/从理论上讲应该首选VBA函数。
使用对象浏览器(F2)查找VBA标准库的成员,尤其是其Math
模块。
答案 1 :(得分:1)