我有一个宏,我想要使用一堆现有的电子表格.唯一的问题是,有太多的电子表格,手动操作太费时间了!
我编写了一个Python脚本来使用pyWin32访问所需的文件,但我似乎无法找到一种方法来使用它来添加宏.
这里有一个类似的问题给出了这个答案(它不是Python,但看起来它仍然使用COM),但我的COM对象似乎没有一个名为VBProject的成员:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.DisplayAlerts = False
Set objWorkbook = objExcel.Workbooks.Open("C:\scripts\test.xls")
Set xlmodule = objworkbook.VBProject.VBComponents.Add(1)
strCode = _
"sub test()" & vbCr & _
" msgbox ""Inside the macro"" " & vbCr & _
"end sub"
xlmodule.CodeModule.AddFromString strCode
objWorkbook.SaveAs "c:\scripts\test.xls"
objExcel.Quit
Run Code Online (Sandbox Code Playgroud)
编辑:链接到引用的类似问题:将Excel VBA代码注入并执行到从外部源接收的电子表格中
我也忘了提到虽然这不是Python,但我希望通过COM对象可以使用类似的对象成员.