【发布时间】:2017-02-23 22:34:27
【问题描述】:
我曾经使用这个问题中的信息来运行一个 VBA 脚本,该脚本在我运行我的 python 代码后会进行一些基本的格式化。
How do I call an Excel macro from Python using xlwings?
特别是我使用了第一次更新。
from xlwings import Workbook, Application
wb = Workbook(...)
Application(wb).xl_app.Run("your_macro")
现在我正在使用 v0.10.0 的 xlwings 并且此代码不再有效。
当我尝试 v0.10.0 的建议新代码时:
wb.app.macro('your_macro')
Python 返回一个对象:
<xlwings.main.Macro at 0x92d3198>
我的宏没有在 Excel 中运行。
文档 (http://docs.xlwings.org/en/stable/api.html#xlwings.App.macro) 有一个示例,它是一个自定义函数,但我有一个脚本可以在 Excel 中执行几件事(格式化我从 python 输出的数据,在工作表中添加一些公式等),我想跑。
我确定我在这里遗漏了一些基本的东西。
更新 根据 Felix Zumstein 的建议,我尝试了:
import xlwings as xw
xlfile = 'model.xlsm'
wb = xw.Book(xlfile)
wb.macro('your_macro')
这返回与 wb.app.macro('your_macro') 相同的内容:
<xlwings.main.Macro at 0x92d05888>
并且没有 VBA 脚本在 Excel 中运行。
【问题讨论】: