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

最も単純な構文は次のとおりです。

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

私はそれを試していませんが、しません

t=myfunction(range)
于 2012-12-10T11:48:36.897 に答える