在VBA中传递数组作为RunPython脚本的参数(xlwings)

在我的VBA sub中,我使用xlwings中的RunPython命令调用python脚本。 我想调用一个数组作为参数的函数。 如何将VBA数据types转换为Python可读的列表?

码:

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

我可以成功地传递一个string,虽然我不知道如何传递数组argsArray作为参数。

看看转换器。

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

你可以做的是将Range地址作为string传递,然后以数组的forms获取值。 从文档:

 arr = xw.Range('A1:A3').options(np.array, ndim=2).value 

你可以用argsArrayAddressStringreplace“A1:A3”

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

那么在你的代码中:

 arr = xw.Range(argsArrayAddressString).options(np.array, ndim=2).value