如何解决如何使用python更改VBA模块的名称
我正在尝试以编程方式将多个 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,invoke_type,value)
pywintypes.com_error: (-2147352567,'Ausnahmefehler aufgetreten.',(0,None,-2146778156),None)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。