如何将Collection传递给VBA宏并将其填充

时间:2019-01-09 07:51:11

标签: python excel vba com pythoncom

我有一个处理Excel文件的python程序。在Excel文件中,我有一个将Collection作为其参数之一的宏。

如何在python中创建VBA集合,以及如何从中提取值?在这种情况下,我使用集合进行记录,因此集合中的项目为字符串,似乎由pythoncom自动处理。

VBA代码:

Public Function Import( _
    path As String, _
    report As Collection _
) As Boolean
...
End Function

Python代码:

clsid = "Excel.Application"
ret = pythoncom.CoCreateInstanceEx(
    clsid,
    None,
    pythoncom.CLSCTX_SERVER,
    None,
    (pythoncom.IID_IDispatch,)
)
clsid = ret[0]
xlapp = gencache.EnsureDispatch(clsid)
wb = xlapp.Workbooks.Open(
    Filename="file.xlsm",
    ReadOnly=True,
)
ret = xlapp.Run(
    Macro="ImportWHL.Import",
    Arg1="path",
    Arg2=report,
)

那么,如何在上面的示例中创建“报告”变量?

0 个答案:

没有答案