您可能已经知道,可以通过双击工作表选项卡的名称并提供新名称来更改其名称。但是,如果要动态执行该怎么办?如果要让单元格A1中的值自动显示为选项卡名称怎么办?

不幸的是,Excel没有提供内部函数来处理此类任务。使用宏开发此类功能将是一件相对简单的事情,它将为您完成工作。例如,以下宏会将选项卡名称更改为A1的内容:

Sub myTabName()

ActiveSheet.Name = ActiveSheet.Range("A1")

End Sub

关于此宏,有几个重要的注意事项。首先,没有错误检查。这意味着,如果A1包含对于制表符名称而言是非法的值(例如完全不包含或不超过31个字符),则宏将生成错误。其次,该宏必须手动运行。

如果您想要一个更强大的宏来检查错误并自动运行该怎么办?结果会更长一点,但仍然不会太复杂:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Set Target = Range("A1")

If Target = "" Then Exit Sub     On Error GoTo Badname     ActiveSheet.Name = Left(Target, 31)

Exit Sub Badname:

MsgBox "Please revise the entry in A1." & Chr(13) _     & "It appears to contain one or more " & Chr(13) _     & "illegal characters." & Chr(13)

Range("A1").Activate End Sub

要设置此宏,请按照下列步骤操作:

。打开一个只有一个工作表的新工作簿。

。右键单击工作表选项卡,然后从出现的“上下文”菜单中选择“查看代码”。 Excel将显示VBA编辑器。

。将上面的宏粘贴(或键入)到代码窗口中。

。关闭VBA编辑器。

。在系统上找到XLStart文件夹。 (使用Windows搜索功能找到该文件夹​​。)

。使用XLStart目录中的名称BOOK.XLT将工作簿另存为Excel模板。这会使模板成为您创建的任何新工作簿的模式。

。再次将工作簿另存为模板在同一目录中,这次使用名称SHEET.XLT。这使模板成为您插入工作簿中任何新工作表的模式。

。关闭并重新启动Excel。

现在,只要您更改单元格A1中的值,工作表选项卡也会更新。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2145)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: