Application.Run和范围参数?
如果我有一个excelfunction,如:
=my_function(A1:C4)
我想从VBA调用这样的:
Dim t as variant t = Application.Run("my_function",X)
X代表A1:C4的最简单方法是什么?
你的范围必须来自一个工作表,所以如果你先定义该范围,然后将其传递给另一个工作簿中的函数(我认为这是你想要做的,因为你不会再使用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:
Function TheSubName(inputRange as Range) as Variant 'Work your magic here End Function
我没有尝试,但不会
t=myfunction(range)
最简单的语法是
Application.Run("my_function", [A1:c4])