我指的是包含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
宏吗?
我认为这将解决我的问题。谢谢。
答案 0 :(得分:1)
您必须在xlwings VBA模块中引用ActiveWorkbook
而不是ThisWorkbook
。
作为旁注,我们计划添加一个加载项(请参阅here),这可能也会解决您的问题。