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),一旦可用,它也可能会解决您的问题。
我指的是包含 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),一旦可用,它也可能会解决您的问题。