为Excel工作簿快速创建工作表目录的方法
我们经常把同类相关Excel工作表集中保存在同一文档中,以便于在各表格间进行引用、查看。当一个文档中的工作表达到一定数量时,要想找到需要的工作表就变得很麻烦了。此时若能建立一张“目录”工作表显示所有工作表的名称和链接,事情将会简单很多。
下面介绍一种可以快速为Excel工作簿创建工作表目录的方法。
定义名称
打开Excel 2007,右击第一张工作表标签选择“重命名”,把它重命名为“目录”工作表。选中B1单元格,切换到“公式”选项卡,单击“定义名称”,在弹出的“新建名称”窗口中输入名称“工作表名”,在引用位置中则输入公式=INDEX(GET.WORKBOOK(1),$A1)&T(NOW()),单击确定即可定义出一个名为“工作表名”的名称。
公式中GET.WORKBOOK(1)用于提取当前工作簿中所有工作表名称,INDEX函数则按A1中的数字决定要显示第几张工作表的名称。此外,由于宏表函数GET.WORKBOOK(1)在数据变动时不会自动重算,而NOW()是易失性函数任何变动都会强制计算,因此我们需要在公式中加上NOW()函数才能让公式自动重算。函数T()则是将NOW()产生的数值转为空文本以免影响原公式结果。
注:宏表函数GET.WORKBOOK,不能直接在单元格公式中使用,必须通过定义名称才能起作用。
目录设置
在“目录”工作表的A1单元格输入1,在B1单元格输入公式=IFERROR(HYPERLINK(工作表名&"!A1",RIGHT(工作表名,LEN(工作表名)-FIND("]",工作表名))),"")。公式表示当名称“工作表名”的值为错误值时显示为空“”,否则创建指向“工作表名!A1”的超链接并显示该“工作表名”。
然后选中A1:B1单元格,把鼠标指向选中区右下角的“填充柄”按住鼠标左键向下拖动到300行,把公式和编号填充出300行,在A、B列就会马上自动列出所有工作表目录(图2)。单击相应工作表名称即可快速切换到该工作表中。请参照可能的最多工作表个数来决定向下填充行数,一般300个应该够了。
注:公式中RIGHT(工作表名,LEN(工作表名)-FIND("]",工作表名))这段函数的作用是除去“工作表名”中“]”以前的内容。若你不介意工作表名称前显示“[BOOK1.xlsx]”一类内容的话,可以把B1中的公式简化成=IFERROR(HYPERLINK(工作表名&"!A1",工作表名),"")。
保存设置
切换到“开始”选项卡适当设置一下目录中的字体、字号和颜色等等,建议把字号放大并设置加粗以便查看,还要调整一下A:B列的列宽以便完全显示工作表名称。然后右击其他工作表标签选择“删除”,把所有其他工作表全部删除只保留一张“目录”工作表。最后单击“Office”按钮,选择“另存为”,在弹出的另存为窗口中选择保存类型为“Excel启用宏的模板(*.xltm)”格式、文件名为“目录.xltm”,保存到C:Program FilesMicrosoft OfficeOffice12XLSTART文件夹下,关闭Excel 2007退出。若你的Office不是按默认路径安装,请按实际安装路径修改。
三秒创建目录
以后要为工作簿创建目录就简单了,只要用Excel 2007打开要创建目录的工作簿,在第一张工作表的标签上右击选择“插入”,在“插入”窗口中双击选择“目录”,即可在第一张工作表前插入一张“目录”工作表,并显示出所有工作表目录。这操作有3秒就够了吧?
在“目录”工作表中,可通过对目录进行筛选、排序、查找来快速找到工作表名,然后单击工作表名即可打开相应工作表。创建目录后,在这个工作簿中增加、删除工作表或者修改工作表名称,“目录”工作表中的工作表目录都会自动更新。此外,前面我们只复制了300行目录公式,因此工作表总数超过300个时,超出的工作表名就不会显示了,得把“目录”工作表中A1:B1的公式再向下复制填充才行。
由于宏表函数GET.WORKBOOK(1)是通过宏功能起作用的,所以插入了工作表目录的文档最后都必须以“Excel启用宏的工作簿(*.xlsm)”格式另存,这样下次打开时才能正常显示工作表目录。此外,打开工作簿时,Excel 2007默认会禁用宏,得单击警告栏中的“选项”按钮,选中“启用此内容”单选项,确定后才能显示工作表目录。