2012-12-10 54 views
2

如果我有一個Excel的功能,如:Application.Run和範圍參數?

=my_function(A1:C4) 

,我想從VBA喜歡稱之爲:

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

什麼是X代表A1最簡單的方法:C4?

+0

你試過:' Application.Run(「'my_function」「A1:C4」「'」)'? – assylias

回答

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 
0

我還沒有嘗試,但不會

t=myfunction(range) 
0

最簡單的語法是

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