Python:在运行Excel宏时隐藏打开文件对话框

问题描述:

我正在编写一个Python脚本来自动化一个使用Excel宏来格式化文件以便稍后输入到其他程序的过程。我对Python有点新鲜,对VBA也是全新的,但我认为我有下面的步骤。Python:在运行Excel宏时隐藏打开文件对话框

到目前为止,我有这个运行宏本身(与帮助其他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?

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

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

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