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

时间:2015-06-19 15:24:11

标签: python excel vba excel-vba

我正在编写一个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中的一个模块重写Python中的宏来驱动Excel?

1 个答案:

答案 0 :(得分:0)

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

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

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