xlwings如何从Excel中的PERSONAL.XLS调用宏?

时间:2015-12-31 14:19:56

标签: python xlwings

我指的是包含xlwings功能的宏。我知道如何调用宏,但我在将它们与xlwings包集成时遇到了麻烦。请允许我解释一下。

我在PERSONAL.XLSB中包含了xlwings模板代码,因此我可以调用该包。

第一个挑战是调整PYTHONPATH以找到Python Scripts文件夹并阅读相应的模块。我是在Visual Basic中的PERSONAL.XLSB中完成的。

-- PYTHONPATH = ThisWorkbook.Path
++ PYTHONPATH = "C:\Users\Diego-MX\Documents\Python Scripts"

在几次尝试调试我的宏之后,我开始假设从不同的电子表格运行宏不会捕获我想要的工作簿。我的宏中的xlwings.Workbook.caller()将引用PERSONAL.XLSB而不是我的实际工作簿。

我有办法将工作簿参数从电子表格传递到PERSONAL.XLSB,然后传递到我的xlwings宏吗?

我认为这将解决我的问题。谢谢。

1 个答案:

答案 0 :(得分:1)

您必须在xlwings VBA模块中引用ActiveWorkbook而不是ThisWorkbook

作为旁注,我们计划添加一个加载项(请参阅here),这可能也会解决您的问题。