Vba 在自定义函数中调用公式
我想在Excel中为公式创建包装 让我们这样说:Vba 在自定义函数中调用公式,vba,excel,excel-formula,Vba,Excel,Excel Formula,我想在Excel中为公式创建包装 让我们这样说: Function NewToday() NewToday = Today() End Function Function NewToday() As Date NewToday = Date End Function 然而,当我调用它时,我得到了一个“未定义的子函数或函数” 基本上,我想调用一个普通的excel函数,其中包含VBA代码中提供的参数今天在VBA命名空间中不存在,因此出现了错误。但是,您可以使用Evaluate检
Function NewToday()
NewToday = Today()
End Function
Function NewToday() As Date
NewToday = Date
End Function
然而,当我调用它时,我得到了一个“未定义的子函数或函数”
基本上,我想调用一个普通的excel函数,其中包含VBA代码中提供的参数
今天
在VBA命名空间中不存在,因此出现了错误。但是,您可以使用Evaluate
检索任何Excel函数,其行为类似于Excel中输入的公式
Function NewToday() As Date
NewToday = Evaluate("today()")
End Function
但是,您需要手动将单元格格式化为
Date
使用Date
,如下所示:
Function NewToday()
NewToday = Today()
End Function
Function NewToday() As Date
NewToday = Date
End Function
在VBA中没有
Today()
甚至使用Application.WorksheetFunction。
也没有Today()
。如果要检索今天的日期,请使用不带限定符的Now()
VBA函数或类似于带限定符的VBA.Now()
。如果您想要任何其他函数的包装器,只需使用Application.WorksheetFunction.
对其进行限定,然后查看intelli sensemaybeCDate(Evaluate(“Today()”)
?但我会为这样做而争论。为什么不使用VBA的Now()
来代替Today()
?这只是一个例子,我想使用一个比现在复杂得多的函数。@mehow这是一种通用的方法,这种方法Today()
可以被任何东西代替