|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Step One:定义公式名
打开Excel 2007,右击第一张工作表标签选择重命名,把它重命名为目录工作表。选中B1单元格,切换到公式选项卡,单击定义名称,在弹出的新建名称窗口中输入名称工作表名,在引用位置中则输入公式
01.=INDEX(GET.WORKBOOK(1),!$A1)&T(NOW())
复制代码
单击确定即可定义出一个名为工作表名的名称,在建立公式名后,直接在A1列写序列号,在B1列使用公式菜单中的“用于公式”选项,利用刚才创建的公式,然后按住ctrl拖出很多行(有几个sheet就拖出几行)。这时候在 B1到Bn列 ,会显示出每个 sheet的字符串名称。
01.上述函数公式解释如下:公式中GET.WORKBOOK(1)用于提取当前工作簿中所有工作表名称,INDEX函数则按A1中的数字决定要显示第几张工作表的名称。此外,由于宏表函数GET.WORKBOOK(1)在数据变动时不会自动重算,而NOW()是易失性函数任何变动都会强制计算,因此我们需要在公式中加上NOW()函数才能让公式自动重算。函数T()则是将NOW()产生的数值转为空文本以免影响原公式结果。 注:宏表函数GET.WORKBOOK,不能直接在单元格公式中使用,必须通过定义名称才能起作用
复制代码
Step TWO:去掉sheet名称中的不必要字符(括号和英文)
在C1列写函数:
01.=RIGHT(B1,(LEN(B1)-FIND("]",B1)))
复制代码
注:公式中RIGHT(工作表名,LEN(工作表名)-FIND(],工作表名))这段函数的作用是除去工作表名中]以前的内容
Step Three:建立超链接
01.=HYPERLINK("#"&C1&"!A1",C1)
复制代码保存设置
切换到开始选项卡适当设置一下目录中的字体、字号和颜色等等,建议把字号放大并设置加粗以便查看,还要调整一下A:B列的列宽以便完全显示工作表名称。然后右击其他工作表标签选择删除,把所有其他工作表全部删除只保留一张目录工作表。最后单击Office按钮,选择另存为,在弹出的另存为窗口中选择保存类型为Excel启用宏的模板(*.xltm)格式、文件名为目录.xltm,保存到C:\Program Files\Microsoft Office\Office12\XLSTART文件夹下,关闭Excel 2007退出。若你的Office不是按默认路径安装,请按实际安装路径修改。
三秒创建目录
以后要为工作簿创建目录就简单了,只要用Excel 2007打开要创建目录的工作簿,在第一张工作表的标签上右击选择插入,在插入窗口中双击选择目录,即可在第一张工作表前插入一张目录工作表,并显示出所有工作表目录。这操作有3秒就够了吧?
在目录工作表中,可通过对目录进行筛选、排序、查找来快速找到工作表名,然后单击工作表名即可打开相应工作表。创建目录后,在这个工作簿中增加、删除工作表或者修改工作表名称,目录工作表中的工作表目录都会自动更新。此外,前面我们只复制了300行目录公式,因此工作表总数超过300个时,超出的工作表名就不会显示了,得把目录工作表中A1:B1的公式再向下复制填充才行。
由于宏表函数GET.WORKBOOK(1)是通过宏功能起作用的,所以插入了工作表目录的文档最后都必须以Excel启用宏的工作簿(*.xlsm)格式另存,这样下次打开时才能正常显示工作表目录。此外,打开工作簿时,Excel 2007默认会禁用宏,得单击警告栏中的选项按钮,选中启用此内容单选项,确定后才能显示工作表目录。
|
|