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

时间:2016-07-08 03:06:32

标签: python arrays excel vba xlwings

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

代码:

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

我可以使用&成功传递一个字符串,虽然我不知道如何将数组argsArray作为参数传递。

1 个答案:

答案 0 :(得分:0)

看看转换器。

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

您可以做的是将Range地址作为字符串传递,然后将值作为数组获取。来自文档:

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

你要替换A1:A3'使用argsArrayAddressString:

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

然后在你的代码中:

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