Excel VBA:将每个工作表的名称更改为每个工作表中的单元格A1值



我有一个代码,可以将活动工作表(在本例中为工作表1(重命名为活动工作表的A1单元格中的值。我想写一个函数,以便能够对Excel工作簿中的每一张工作表执行此操作。其中,表1名称将是表1上单元格A1的值,表2名称将是图2上单元格A1值,依此类推

它是否像计算工作簿中的工作表数并将其添加到工作表范围(1:TotalCount(一样简单?

Sub RenameSheet()
Worksheets(1).Select
Range("A1").Select
ActiveSheet.Name = ActiveCell.Value
End Sub

正如BigBen所说,您需要一个循环来遍历每张表。最简单的方法是使用Worksheet对象的集合。最好检查单元格";A1〃;实际上有一些东西在里面,否则你会得到一个错误。试试这个:

Option Explicit
Sub RenameSheets()
Dim ws As Worksheet
Dim strName As String
For Each ws In ActiveWorkbook.Worksheets
strName = ws.Range("A1").Value
If Len(strName) > 0 Then
ws.Name = strName
End If
Next ws
End Sub

您可能还应该检查该名称是否尚未使用。Excel不喜欢你有两张同名的表格。Excel的首要事实:您不能调用工作表"历史"。。

相关内容

最新更新