我正在编写一个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?
答案 0 :(得分:0)
看起来我可以使用参数调用xl.Run("my_macro")
所以我只需要弄清楚宏如何读取这些参数,所以一旦我传入路径它就可以在没有对话框的情况下打开文件。
xl.Run("my_macro", path1, path2)