【发布时间】:2019-08-14 23:35:26
【问题描述】:
我有一个宏,我希望使用一堆现有的电子表格。唯一的问题是电子表格太多,手工完成太费时间了!
我已经编写了一个 Python 脚本来使用 pyWin32 访问所需的文件,但我似乎无法找到一种方法来使用它来添加宏。
A similar question here给出了这个答案(它不是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
编辑:链接到引用的类似问题:Inject and execute Excel VBA code into spreadsheet received from external source
我还忘了提到,虽然这不是 Python,但我希望类似的对象成员可以通过 COM 对象提供给我。
【问题讨论】:
-
“A similar question here given this answer”这里缺少链接,不是吗?
-
首先,您的示例代码甚至不是 Python;我很确定它是 Visual Basic。
-
我已经修改了我的问题!