【问题标题】:Python: hide Open File Dialog when running Excel macroPython:运行 Excel 宏时隐藏打开文件对话框
【发布时间】: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?

【问题讨论】:

    标签: python vba excel


    【解决方案1】:

    看起来我可以用参数调用xl.Run("my_macro"),所以我只需要弄清楚宏是如何读取这些参数的,这样一旦我传入路径,它就可以在没有对话框的情况下打开文件。

    xl.Run("my_macro", path1, path2)
    

    https://*.com/a/16740500/3788802

    【讨论】:

      最近更新 更多