Excel VBA 之 自动建立工作表目录


Excel VBA 之 自动建立工作表目录

现在有一个工作簿,里面有很多张工作表,为了使用方便,我们往往需要插入一个目录表,并加入超链接方便跳转,但是如果该工作簿中的工作表经常性的变动、删除,那么我们手动建立目录将会很不方便,今天就来讲一下如何用VBA实现自动创建目录并实现跳转功能。

生成目录的代码如下

<code>01\tSub main()
02\t Dim sht
03\t Dim a%
04\t a = 2
05\t Sheet1.Range("A2:A65535").ClearContents
06\t For Each sht In Sheets
07\t If sht.Name <> "Sheet1" Then
08\t Sheet1.Cells(a, 1).Value = sht.Name
09\t a = a + 1
10\t End If
11\t Next
12\tEnd Sub/<code>

代码解析

04行:目录起始行为第2行(第一行为标题《目录》)

05行:清除原目录内容

06行:遍历所有Sheet

07-10行:将不是目录所在的sheet名添加到目录

Excel VBA 之 自动建立工作表目录

目录效果

然后,我们需要实现跳转功能,可以利用工作表的SelectionChange事件,代码如下

<code>01\tPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
02\t Dim mR%
03\t mR = Sheet1.[A65500].End(xlUp).Row
04\t On Error Resume Next
05\t If Target.Count = 1 Then
06\t If Target.Column = 1 Then
07\t If Target.Row > 1 And Target.Row <= mR Then
08\t Sheets(Target.Value).Select
09\t End If
10\t End If
11\t End If
12\tEnd Sub/<code>

代码解析

03行:目录最大行数

04行:发生错误时,让程序继续执行下一句代码

05行:选中的单元格数目为1

06行:选中的单元格在第一列

07行:选中的单元格在目录函数范围内

05-07行:限制事件触发的条件

08行:跳转至单元格所对应的工作表


跳转效果如图:

Excel VBA 之 自动建立工作表目录

跳转效果

点击下面链接可以查看我的其他文章哦!


喜欢的朋友记得点赞关注哦,网友们如果在Excel中遇到问题都可以找我交流,也可以在评论区或私信告诉我你想看到的VBA办公教程,我将在下期分享给大家,以后不定期更新Excel VBA技巧!


分享到:


相關文章: