Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 在自定义函数中调用公式_Vba_Excel_Excel Formula - Fatal编程技术网

Vba 在自定义函数中调用公式

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检

我想在Excel中为公式创建包装

让我们这样说:

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 sensemaybe
CDate(Evaluate(“Today()”)
?但我会为这样做而争论。为什么不使用VBA的
Now()
来代替
Today()
?这只是一个例子,我想使用一个比现在复杂得多的函数。@mehow这是一种通用的方法,这种方法
Today()
可以被任何东西代替