xlwings能否将数组返回到VBA变量?

xlwings能否将数组返回到VBA变量?,vba,excel,xlwings,Vba,Excel,Xlwings,我是xlwings的新手,无法找到任何文档或将数组返回到VBA变量的方法 e、 g 其中返回的值类似于:Array(“A”、“B”、“C”)RunPython不返回值,也就是说,它适用于操作工作簿中的任何内容(如单元格的值),但不适用于VBA或用户定义函数(UDF)。可以执行您想要的操作,但当前仅在Windows上受支持 Python代码示例(需要导入Excel,例如使用外接程序): 这将在VBA中为您提供一个变体,您可以这样使用: Sub arr_test() Matrix = tes

我是xlwings的新手,无法找到任何文档或将数组返回到VBA变量的方法

e、 g


其中返回的值类似于:Array(“A”、“B”、“C”)

RunPython
不返回值,也就是说,它适用于操作工作簿中的任何内容(如单元格的值),但不适用于VBA或用户定义函数(UDF)。可以执行您想要的操作,但当前仅在Windows上受支持

Python代码示例(需要导入Excel,例如使用外接程序):

这将在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]])

谢谢,Felix。我不清楚如何将函数导入Excel。我有xlwings.bas文件(作为模块导入),但在xlwings包文件夹(\Anaconda2\Lib\site packages\xlwings)中看不到加载项文件,您至少需要v0.6.0。最简单的安装方法是通过命令行客户端:
import xlwings as xw

@xw.xlfunc
def test():
    return [[1, 2], [3, 4]]
Sub arr_test()
    Matrix = test()

    For Row = 0 To 1
        For Column = 0 To 1
            Debug.Print Matrix(Row, Column)
        Next
    Next
End Sub