动态工作表选项卡名称(Microsoft Excel)
您可能已经知道,可以通过双击工作表选项卡的名称并提供新名称来更改其名称。但是,如果要动态执行该怎么办?如果要让单元格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及更高版本)找到本技巧的版本: