我是xlwings的新手,并且无法找到任何文档或将数组返回到VBA变量的方法。
e.g。
Function GetTickers() As Variant
GetTickers = RunPython("import xcel_interface;xcel_interface.get_ticker_list()")
End Function
返回的值类似于:数组(" A"," B"," C")
答案 0 :(得分:1)
RunPython
不返回值,即它适用于处理工作簿中的任何内容(如单元格的值),但不适用于VBA或用户定义的函数(UDF)。 decorator syntax可以满足您的需求,但目前仅在Windows上支持。
示例Python代码(您需要导入Excel,例如使用加载项):
import xlwings as xw
@xw.xlfunc
def test():
return [[1, 2], [3, 4]]
这将在VBA中为您提供Variant
,您可以这样使用:
Sub arr_test()
Matrix = test()
For Row = 0 To 1
For Column = 0 To 1
Debug.Print Matrix(Row, Column)
Next
Next
End Sub
在Python中,您还可以返回NumPy数组而不是嵌套列表:np.array([[1, 2], [3, 4]])