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

xlwings How to call macros from PERSONAL.XLS in Excel?

我指的是包含 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 宏?

我想这会解决我的问题。谢谢。

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

附带说明,有一个 add-in 计划(请参阅 here),一旦可用,它也可能会解决您的问题。