如何在 excel 中使用 vba 重命名工作表?

将新工作表添加到工作簿时,您可以选择为其命名。但您也可以随时使用工作表的 name 属性对其进行重命名。在本教程中,我们将了解使用 VBA 代码重命名一个或多个工作表的不同方法。

使用 VBA 代码重命名工作表的步骤

  1. 首先,使用工作表对象定义要重命名的工作表。
  2. 之后,您需要使用 (.Name) 来访问要修改的 name 属性。
  3. 接下来,键入等号以告诉 VBA 要用于重命名工作表的值。
  4. 最后,键入您要使用的工作表的名称。
定义要重命名的工作表

有用的链接:运行宏宏记录器Visual Basic 编辑器个人宏手册

重命名活动工作表

如果要重命名活动工作表,在这种情况下,您不需要设置工作表名称,而是需要使用 ActiveSheet 对象,它告诉 VBA 此时引用活动工作表。这是代码。

 Activesheet.Name = "mySheet"
重命名活动工作表

注意:要重命名工作表,您无需激活它。

使用图纸编号重命名图纸

如您所知,每个工作表都有一个编号,具体取决于其在工作簿中的位置。假设您想重命名第五个数字上的工作表,代码如下。

 Sheets(5).Name = "mySheet5"
使用工作表编号重命名工作表

当您运行上面的宏时,它会重命名第五个数字上的工作表。

按数字重命名工作表

重命名前检查工作表是否存在

如果您尝试重命名不存在的工作表,VBA 将显示错误,如下所示。

重命名之前检查工作表是否存在

此问题的解决方案是以下使用FOR EACH 的代码,它可以循环遍历所有工作表以找到您定义的工作表,然后重命名该工作表。

 Sub check_sheet_rename() Dim ws As Worksheet Dim mySheet As String Dim SheetName As String mySheet = InputBox("enter the name of the sheet that you want to rename.") SheetName = InputBox("Enter new name for the sheet.") For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Name = SheetName End If Next ws End Sub

使用单元格或范围的值重命名工作表

您还可以通过获取单元格的值来重命名工作表。假设该值位于单元格 A1 中。

 Sheets("Sheet1").name = Range("A1").Value

但假设您想根据一系列单元格中的值命名多个工作表。在这种情况下,您应该有这样的代码。

 Sub vba_sheet_rename_multiple() Dim wsCount As Long Dim rCount As Long Dim ws As Worksheet Dim name As Range Dim i As Long wsCount = ThisWorkbook.Worksheets.Count rCount = Range("A1:A10").Rows.Count 'Checks if the count of the names provided is less _ or more than the sheets in the workbook If wsCount <> rCount Then MsgBox "There's some problem with the names provided." Exit Sub Else 'Check if any of the cells in the name range is empty. For Each name In Range("A1:A10") If IsEmpty(name) = True Then i = i + 1 End If Next name If i > 0 Then MsgBox "There's is a blank cell in the names range." Exit Sub End If End If 'rename each sheet using the value from the range cell by cell. i = 1 For Each ws In ThisWorkbook.Worksheets ws.name = Range("A1:A10").Cells(i, 1).Value i = 1 + i Next ws End Sub

当您运行此 VBA 代码时,它首先检查区域中的单元格是否等于工作簿中的工作表数。之后,它将检查您指定范围内的所有单元格是否都有值。最后使用这些名称重命名所有工作表。

它将使用IF THEN ELSE检查两个条件,然后重命名所有工作表。

添加评论

您的邮箱地址不会被公开。 必填项已用 * 标注