xlwings能否将数组返回到VBA变量?
我是xlwings的新手,无法找到任何文档或将数组返回到VBA变量的方法 e、 gxlwings能否将数组返回到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
其中返回的值类似于: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