当前我想在函数内调用工作表函数,例如LN, NORMDIST
我必须写
Function f()
Dim wsf
Set wsf = Application.WorksheetFunction
'only then can I call them by wsf.func, like
Dim v
v = wsf.Ln(2.0) 'Natural log of 2
f = v
End Function
这看起来很乏味。是否可以在全球或模块范围内定义WorksheetFunction
对象,以便该模块内的任何功能都可以直接调用?
(老实说,我发现必须通过WorksheetFunction
对象访问许多内置功能的整个想法确实很烦人(
这将是一件奇怪的事情(即, With … EndWith
块将是调用多个函数而无需重复关键字的通常方式(。
理论上,可以这样做:
Option Explicit
Private wsf As WorksheetFunction
Public Sub Test()
Set wsf = Application.WorksheetFunction
Debug.Print wsf.Sum(1, 2, 3)
Debug.Print wsf.Average(1, 2, 3)
End Sub