python
  • arrays
  • excel
  • vba
  • xlwings
  • 2016-07-08 59 views 1 likes 
    1

    私のVBAサブでは、xlwingsのRunPythonコマンドを使用してPythonスクリプトを呼び出しています。私はパラメータとして配列をとる関数を呼びたいと思います。どのようにしてVBAのデータ型をPythonで読めるリストに変換できますか?VBA(xlwings)のRunPythonスクリプトのパラメータとして配列を渡します

    コード:

    RunPython("import script; script.query(dates=argsArray, queryString='"& myString &"') 
    

    私がパラメータとして配列argsArrayを渡す方法を知りませんが、私は成功し、&を使用して文字列を渡すことができます。

    答えて

    0

    コンバータを見てください。あなたは何ができるか

    http://docs.xlwings.org/en/stable/converters.html?highlight=array

    文字列として範囲のアドレスを渡した後、配列などとして値を取得することです。ドキュメントから:

    あなたが 'A1:A3' 代わる
    arr = xw.Range('A1:A3').options(np.array, ndim=2).value 
    

    :あなたのコードで、その後

    RunPython("import script; script.query(dates=argsArrayAddressString, queryString='"& myString &"') 
    

    :argsArrayAddressStringとので、私のUDFの署名であるが

    ​​
    +0

    は、いいですねVBA、argsArrayAddressStringはRange型であるべきですか? –

    +0

    この場合、文字列 "A1:A3"が使用され、範囲を構成するために使用されます。この方法で呼ばれるPythonは、VBA範囲オブジェクトを理解しません。より複雑にしたい場合は、numpy配列として範囲を定義するデコレータでUDFを作成できます。ここをクリックしてください:http://docs.xlwings.org/en/stable/vba.html#function-arguments-and-return-values。また、こちらを参照してください:http://docs.xlwings.org/en/stable/udfs.html –

    +0

    私はあなたの努力に感謝していますどのような方法を知っています。私はほとんど私のRunPythonスクリプト内の関数に文字列以外の引数を渡そうとしていると思います。 –

    関連する問題