【发布时间】:2015-06-19 23:44:36
【问题描述】:
我正在编写一个 Python 脚本来自动化一个使用 Excel 宏来格式化文件以便稍后输入到不同程序的过程。我对 Python 有点陌生,对 VBA 完全陌生,但我想我已经放下了。
到目前为止,我有这个来运行宏本身(在其他 SO 帖子的帮助下):
xl = win32com.client.DispatchEx('Excel.Application')
xlpath = os.path.expanduser(xlfile)
wb = xl.Workbooks.Open(Filename=xlpath, ReadOnly=1)
xl.Run("my_macro")
此时宏运行并调用Application.GetOpenFilename() 以打开一个对话框,供用户选择要格式化的文件,每个宏都会有所不同。
基本上,我的用户每次运行我的脚本时都会有不同的初始数据来格式化。一开始我希望他们选择他们需要格式化的文件,然后我将保存这些文件路径。然后我想将这些文件路径从 Python 插入到宏中,而不是在 Excel 中打开对话框。
有没有办法通过更改宏直接做到这一点?如果没有,我是否需要使用其中一个模块在 Python 中重写宏来驱动 Excel?
【问题讨论】: