2

如果我有一个excel函数,例如:

=my_function(A1:C4)

我想从 VBA 中调用它,例如:

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

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

4

3 回答 3

5

您的范围必须来自工作表,因此如果您首先定义该范围,然后将其传递给其他工作簿中的函数(我假设这就是您想要做的,因为您不会使用 Application.Run 否则)。所以下面的代码可以解决问题:

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”中的功能:

Function TheSubName(inputRange as Range) as Variant

    'Work your magic here

End Function
于 2012-12-10T12:25:48.093 回答
0

我没试过,但不会

t=myfunction(range)
于 2012-12-10T11:48:36.897 回答
0

最简单的语法是

Application.Run("my_function", [A1:c4])
于 2013-07-30T10:02:54.280 回答