Excel 应用程序。运行和范围参数?

Excel 应用程序。运行和范围参数?,excel,vba,Excel,Vba,如果我有excel功能,例如: =my_function(A1:C4) 我想从VBA中将其称为: Dim t as variant t = Application.Run("my_function",X) X表示A1:C4的最简单方法是什么?我没有尝试过,但不会尝试 t=myfunction(range) 您的范围必须来自工作表,因此,如果您首先定义该范围,然后将其传递给其他工作簿中的函数(我假设这是您想要做的,因为您不会使用应用程序。否则请运行)。因此,下面的代码将实现这一技巧: Sub

如果我有excel功能,例如:

=my_function(A1:C4)
我想从VBA中将其称为:

Dim t as variant
t = Application.Run("my_function",X)

X表示A1:C4的最简单方法是什么?

我没有尝试过,但不会尝试

t=myfunction(range)

您的范围必须来自工作表,因此,如果您首先定义该范围,然后将其传递给其他工作簿中的函数(我假设这是您想要做的,因为您不会使用应用程序。否则请运行)。因此,下面的代码将实现这一技巧:

Sub RunFunctionInAnotherWorkbook()
    Dim rThisRange as Range
    Dim vResult as Variant

    Set rThisRange = ActiveSheet.Range("A1:C4")

    vResult = Application.Run("'MyOtherWorkbook.xls'!TheModuleName.TheSubName", rThisRange)
End Sub
以及工作簿“MyOtherWorkbook.xls”中的函数:

最简单的语法是

Application.Run("my_function", [A1:c4])

您是否尝试过:
应用程序。运行(“'my_function”“A1:C4”“”)
Application.Run("my_function", [A1:c4])