在 VBA (xlwings) 中将数组作为 RunPython 脚本的参数传递
passing array as parameter of RunPython script in VBA (xlwings)
在我的 VBA 子程序中,我使用来自 xlwings 的命令 运行Python 调用 python 脚本。我想调用一个以数组作为参数的函数。如何将 VBA 数据类型转换为 Python 可读的列表?
代码:
RunPython("import script; script.query(dates=argsArray, queryString='"& myString &"')
我可以使用 & 成功传递字符串,尽管我不知道如何将数组 argsArray 作为参数传递。
看看转换器。
http://docs.xlwings.org/en/stable/converters.html?highlight=array
您可以做的是将范围地址作为字符串传递,然后将值作为数组获取。来自文档:
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
在我的 VBA 子程序中,我使用来自 xlwings 的命令 运行Python 调用 python 脚本。我想调用一个以数组作为参数的函数。如何将 VBA 数据类型转换为 Python 可读的列表?
代码:
RunPython("import script; script.query(dates=argsArray, queryString='"& myString &"')
我可以使用 & 成功传递字符串,尽管我不知道如何将数组 argsArray 作为参数传递。
看看转换器。
http://docs.xlwings.org/en/stable/converters.html?highlight=array
您可以做的是将范围地址作为字符串传递,然后将值作为数组获取。来自文档:
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