
现在有一个工作簿,里面有很多张工作表,为了使用方便,我们往往需要插入一个目录表,并加入超链接方便跳转,但是如果该工作簿中的工作表经常性的变动、删除,那么我们手动建立目录将会很不方便,今天就来讲一下如何用VBA实现自动创建目录并实现跳转功能。
生成目录的代码如下
01 Sub main()
02 Dim sht
03 Dim a%
04 a = 2
05 Sheet1.Range("A2:A65535").ClearContents
06 For Each sht In Sheets
07 If sht.Name <> "Sheet1" Then
08 Sheet1.Cells(a, 1).Value = sht.Name
09 a = a + 1
10 End If
11 Next
12 End Sub
代码解析:
04行:目录起始行为第2行(第一行为标题《目录》)
05行:清除原目录内容
06行:遍历所有Sheet
07-10行:将不是目录所在的sheet名添加到目录

目录效果
然后,我们需要实现跳转功能,可以利用工作表的SelectionChange事件,代码如下
01 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
02 Dim mR%
03 mR = Sheet1.[A65500].End(xlUp).Row
04 On Error Resume Next
05 If Target.Count = 1 Then
06 If Target.Column = 1 Then
07 If Target.Row > 1 And Target.Row <= mR Then
08 Sheets(Target.Value).Select
09 End If
10 End If
11 End If
12 End Sub
代码解析:
03行:目录最大行数
04行:发生错误时,让程序继续执行下一句代码
05行:选中的单元格数目为1
06行:选中的单元格在第一列
07行:选中的单元格在目录函数范围内
05-07行:限制事件触发的条件
08行:跳转至单元格所对应的工作表
跳转效果如图:

跳转效果
点击下面链接可以查看我的其他文章哦!
Excel VBA 之 去除重复项
Excel VBA 之 年会抽奖小程序
Excel VBA 之 隐藏合并单元格所在的行
Excel VBA 之 图片网址批量转成图片(一)
Excel VBA 之 图片网址批量转成图片(二)
Excel VBA 之 将txt文档批量导入至Excel
Excel VBA 之 批量给Word文档添加页眉页脚
848个Excel VBA 实用技巧,实例+详细解析,入门必看,建议收藏
喜欢的朋友记得点赞关注哦,网友们如果在Excel中遇到问题都可以找我交流,也可以在评论区或私信告诉我你想看到的VBA办公教程,我将在下期分享给大家,以后不定期更新Excel VBA技巧!