作者:小爽
大家好,我是最近在家搞毕业相关的种种杂事,还不忘记学习 Excel 的小爽~
最近在梳理 Excel 知识点的时候,不经意发出了一个疑问:
Word 中有目录导航,我们通过点击标题,就可以跳转到对应的文档位置。
PPT 中我们可以通过新增节,点击对应的节,就可以跳转到相对应的 PPT 页面。
为什么在 Excel 中,对于工作表,没有一个类似于导航目录的玩意???
Excel 虽然也有导航栏,但是当工作表数量很多,我们想找到指定工作表就太麻烦了!
紧接着,我就在想,既然 Excel 中没有,那我们可不可以自己创建一个目录页?
本文就介绍一下常用的 2 种创建超链接目录的方法:
利用 hyperlink 函数创建目录页(适用于所有版本)
利用兼容性检查创建目录页(适用于Office 2003 以上的版本)
现在工作簿中有如下的工作表,我们需要在目录页中创建工作表目录。
利用 hyperlink 函数创建目录页
一个个输入工作表名称也是可以的,不过有点麻烦,下面我先介绍 2 种获取工作表名称的方法。
▋第一步:获取工作表名称,这里我们介绍两种方法。
❶ 方法一:利用方方格子函数库
之前我们介绍过方方格子函数库,这里我们就用到函数库里的 GetSheetName 函数
=GetSheetName(序号,[是否忽略隐藏表]))
=GetSheetName(1),就是获得第一张表的名称
=GetSheetName(2),就是获得第二张表的名称
=IFERROR(GetSheetName(ROW(A2)),"")
❷ 方法二:自定义函数公式。
① 按住快捷键【Alt+F11】打开 VBA 编辑器,右键插入一个模块。
Function getName(ByVal sheet_no As Integer)
getName = Worksheets(sheet_no).Name
'这个的含义就是:Worksheets(1).Name,获取第一张工作表的名称;Worksheets(1).Name,获取第一张工作表的名称,以此类推……
现在在工作表中,就存在 GetName 函数了,我们直接使用就可以啦~
使用自定义函数的话,文档需要另存为 xlsm/xls 格式。
不想改的话,可以直接获取工作表名称后,将名称直接复制粘贴为值,
到这里,我们就得到工作表的名称了,接下来我们就直接利用 hyperlink 函数创建目录~
▋第二步:使用 hyperlink 函数创建目录
不过点开,结果会出错,原因是 HYPERLINK 函数在引用单元格的时候,第一参数前面需要加个#号。
=HYPERLINK("#"&A2&"!A1",A2)
对于目录页的美化,我们可以将 A 列中的工作表名称设置为白色,C 列取消下划线,修改颜色。
利用兼容性检查创建目录页
PS:关于兼容性检查:Office 可以检查文档与其他版本的 Office for Mac 和 Windows 版本的 Office 的兼容性,并创建兼容性报告。
你可以打开兼容性报告以了解有关任何兼容性问题的详细信息,并尝试修复。
▋第一步
点击第 2 个工作表,按住【Shift】键不松开,点击最后一个工作表。
▋第二步:打开兼容性检查,将生成的目录链接复制到目录表上的 C2 单元格上。
❸ 此时会弹出兼容性检查器对话框,选择「复制到新表」,此时会出现一个工作表名称为「Sheet2」的工作表。
▋第三步:将生成连接区域复制到目录页工作表 B2 单元格上,通过替换和字体格式设置,美化目录页。
❸选中区域,按住快捷键【Ctrl+H】调出替换窗口,将'!A1 全部替换为(空)。
此时,目录页就完成了,鼠标悬停在文字上面会出现小指头,单击之后可以跳转到对应的工作表。最后将 Sheet2 工作表直接删除即可。
▋第四步:为除目录页之外的工作添加跳转链接。
=HYPERLINK("#目录页!A1","回到目录页")
【Ctrl+Enter】批量填充,将字体设置为加粗绿色字体。
最后将目录进行简单美化,就能做出开头所示的效果啦~
XDF1 是什么意思?
我们点击 A1 单元格,按住快捷键【Ctrl+→】,这个时候可以跳转到最后一列,也就是 XFD1。
XDF1 跟 XFD1 一样,其实就是一个单元格,列标为 XDF,行标为 1。
也就是 XDF1 的列数为 16334,工作表的最大列就是 XFD,也就是 16384 列。
为什么要输入=XDF1 呢?
兼容格式的最大列数为 256 (IV)列,当前格式的最大列数为 16384(XFD)列。
当我们在工作表中使用公式=XDF1 后,再检查兼容性问题。
由于兼容性格式最大列数为 256,引用不到列数为 16334 的单元格,所以会出现窗口提示。
我们将检查到的内容复制到新表中,就可以看到对应提示问题中的超链接位置。
所以,除了引用 XDF1 这个单元格,我们还可以引用在 256(IV)到 16384(XFD)列之间的单元格。
利用 hyperlink 函数创建目录。
自定义函数的编写,主要是利用 Worksheets(1).Name,表示第一个工作表的名称。你会发现其实 VBA 也不是特别难;
❷ 利用 hyperlink 函数创建超链接目录,其中第一参数,在跳转单元格的时候前面需要加一个#号。
利用兼容性检查创建目录。
❶ 兼容格式(03 版本)的最大列数为 256 (IV)列,除兼容版本以外的格式最大列数为 16384(XFD)。
所以我们可以利用引用单元格构造兼容性问题,再检查兼容性问题时,复制新表,得到我们创建目录时所需要的超链接。