现在有一个工作簿,里面有很多张工作表,为了使用方便,我们往往需要插入一个目录表,并加入超链接方便跳转,但是如果该工作簿中的工作表经常性的变动、删除,那么我们手动建立目录将会很不方便,今天就来讲一下如何用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名添加到目录
然后,我们需要实现跳转功能,可以利用工作表的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技巧!
閱讀更多 VBA編程開發 的文章