我正在尝试使用VBA可扩展性重命名Excel工作表的ThisWorkbook
代码模块。
我用这条线完成了
ThisWorkbook.VBProject.VBComponents("ThisWorkbook").Name = "wb"
我可以在VB编辑器中看到更改,还可以访问工作簿的属性,例如
Debug.? wb.Name
。但是:如果保存并关闭文件,然后重新打开它,则会出现奇怪的现象。如果代码模块在重命名之前为空,它将恢复为旧的空
ThisWorkbook
名称。如果它不为空或在保存之前已填充,则现在我都有一个空的
ThisWorkbook
模块(如果有的话将触发事件)和已填充的wb
模块-不会触发工作簿事件:有没有人看到过这种行为-并且知道解决方法/解决方法?
最佳答案
快速解答:ThisWorkbook.[_CodeName] = "newName"
详细答案
当我添加对Microsoft Visual Basic For Applications Extensibility 5.3
的引用并运行您的行时
ThisWorkbook.VBProject.VBComponents("ThisWorkbook").Name = "wb"
ThisWorkbook
Name属性实际上并未被修改保存并重新打开文件会导致
ThisWorkbook
对象重复这几乎意味着我现在在一个工作簿中有两个
Workbook
对象,并且都被命名为ThisWorkbook
解决方法是使用“属性”窗口将
ThisWorkbook
重命名为wb
或ThisWorkbook.[_CodeName] = "newName"
因为ThisWorkbook.CodeName
是只读的。