简介 :
Excel工作表都具有名称,但是尽管工作表的默认名称将始终与该工作表的模块名称匹配,但是更改工作表的名称很容易,但是访问和更改模块名称并不那么容易。 如果这是您难以解决的问题,请继续阅读。
工作表名称 :这通常显示在Excel工作簿窗口底部的选项卡中。 双击该选项卡,操作员可以使用新名称改写它。 如果开发人员查看以下内容,这也是可见的并可更改的
VBA IDE窗口中的“ 属性”窗格 (请参见在VBA中调试 )。 您会注意到有两个名为“ Name ”的属性,尽管其中一个括号是“ (Name) ”。 我们稍后再讨论。 只有不带括号的是工作表名称本身。 Worksheet对象(在VBA中使用时)还具有一个.Name属性,该属性反映了此名称。 此属性可以在代码中更新。 工作表模块名称 :工作表的模块名称在Excel主窗口中的任何位置都不可见,但是可以通过属性在VBA IDE中查看(并修改)。 '
(Name) '属性实际上是工作表模块的名称,并且是R / W。 也可以通过VBA将其视为工作表对象的.CodeName属性。 但是,这只是R / O。 然后如何在VBA中更新工作表模块名称 :访问此代码模块的另一种方法是通过
VBProject的 VBComponents集合,可以作为工作簿的属性找到。 如果使用引用的VBA可扩展性库,这是最简单的。 我为2003年拥有的版本名为“ Microsoft Visual Basic应用程序可扩展性5.3”(以帮助读者找到自己的版本)。 VBComponent对象具有.R属性的.Name属性。简而言之,这是更新工作表模块名称的基本代码(这种情况是,我们已经将“
Sheet1 “为” Bob “,我们希望模块名称与之匹配。)如下:Call RenameModule("Bob")
Private Sub RenameModule(strNewName As String)
Dim strSheet As String
With ThisWorkbook
strSheet = .Worksheets(strNewName).CodeName
.VBProject.VBComponents(strSheet).Name = strNewName
End With
End Sub
结论 :
尽管Excel似乎限制了其重命名
通过VBA代码编写模块对象,它将为准备超越基础知识的人员提供它。 也许设计人员认为,仅对对象结构有非常基本了解的开发人员无论如何都会避免这种变化。 希望是,如果您找到了它,并且确实有必要这样做,那么您现在已经可以处理它。From: https://bytes.com/topic/excel/insights/933067-excel-module-code-names