重命名在Excel中使用VBA工作表模块名称
在本文中,我们将创建一个用于重命名工作表模块名称的宏。
每个工作表都有一个与之关联的模块,称为工作表模块。工作表模块包含与工作表相关的事件的VBA代码,以及与工作表中插入的任何Active X控件链接的事件的代码。每个工作表模块都有一个唯一的名称。
在此示例中,我们有一个包含许多工作表的工作簿,并且工作表模块的名称类似于Sheet10,Sheet11等。我们想按Sheet1,Sheet2等顺序重命名工作表模块名称。
逻辑解释
我们已经编写了“ ChangeAllWorksheetCodenames”过程来重命名工作表模块。
因为我们想重命名工作簿中存在的所有工作表的工作表模块名称,所以我们使用了FOR循环来遍历WORKSHEETS集合中存在的所有工作表。
为了重命名工作表的工作表模块名称,我们通过更改VBCOMPONENT的CODENAME属性为工作表模块分配了新名称。
请遵循以下代码
如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。
我们很希望收到您的来信,请让我们知道我们如何才能改善我们的工作并使您的工作更好。写信给我们[email protected]
Option Explicit Sub ChangeAllWorksheetCodenames() 'Code for renaming worksheet codemodule names Dim ws As Worksheet, i As Integer i = 0 'Looping through all the worksheets in the active workbook For Each ws In ActiveWorkbook.Worksheets i = i + 1 'Putting a check over error occurence while renaming 'If error occurs at runtime, code will skip the error and 'Start executing from next line On Error Resume Next 'Code for renaming codemodule name ws.Parent.VBProject.VBComponents(ws.CodeName).Properties("_CodeName") = _ "Sheet" & i 'Cancelling the effect error check statement we used earlier, 'Code will not skip the code if any runtime error occurs On Error GoTo 0 Next ws Set ws = Nothing End Sub