我是 xlwings 的新手,找不到任何文档或将数组返回到 VBA 变量的方法。
例如
Function GetTickers() As Variant
GetTickers = RunPython("import xcel_interface;xcel_interface.get_ticker_list()")
End Function
返回值类似于: Array("A", "B", "C")
RunPython
不返回值,即它适用于操作工作簿中的任何内容(如单元格的值),但不适用于 VBA 或用户定义的函数 (UDF)。装饰器语法可以满足您的需求,但目前仅在 Windows 上受支持。
示例 Python 代码(您需要导入 Excel,例如使用加载项):
import xlwings as xw
@xw.xlfunc
def test():
return [[1, 2], [3, 4]]
这将为您提供一个Variant
VBA 格式,您可以像这样使用它:
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]])