我试图以编程方式将多个VBA模块添加到.xlsm excel文件中。现在代码开始工作并添加模块,但它们被称为Module1、Module2、Module3
如何更改模块的名称?我很难找到pywin32的文档。我在网上找到的唯一线索不起作用
# open the excel wb from file
workbook = excel.Workbooks.Open(Filename=os.path.abspath(wb_path))
# remove old vba modules
for i in workbook.VBProject.VBComponents:
excelModule = workbook.VBProject.VBComponents(i.Name)
if excelModule.Type in [1, 2, 3]:
workbook.VBProject.VBComponents.Remove(excelModule)
# loop through makros and attach all of them to the excel
for makroRoot, makrodirs, makrofiles in os.walk(wb_path + '.vba'):
for mfile in makrofiles:
# add Module
excelModule = workbook.VBProject.VBComponents.Add(1)
name = mfile.replace(".bas", "")
excelModule.Name = name #does not work
ppath = os.path.abspath(os.path.join(makroRoot, mfile))
excelModule.CodeModule.AddFromFile(ppath)
我得到以下错误
...
File "add-makros.py", line 35, in merge
excelModule.Name = name
File "C:\Python39\lib\site-packages\win32com\client\dynamic.py", line 549, in __setattr__
self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
pywintypes.com_error: (-2147352567, 'Ausnahmefehler aufgetreten.', (0, None, None, None, 0, -2146778156), None)
目前没有回答
相关问题 更多 >
编程相关推荐