大家好,我们都知道一个Excel工作簿,可能存在非常多的工作表(worksheets集合),有时候多达几百个。当这个时候,我们查找相关数据非常的困难,效率低下。其实我们有办法可以改善这种情况。我们应该都知道Excel有一个工具可以达到这种效果,你也许已经猜到了。他就是超链接,可以通过超链接快速查看相关工作表的内容,也就是我们本文重点介绍的主人公。
那么说起制作工作表目录和超链接,您首先想到的是什么?我们使用什么方法来实现我们的功能呢?其实方法有很多,函数法,VBA法.在正常的情况下,我们可以使用Excel自带的工作表目录功能去实现这个功能或者需求。 但有在某些情况的时候,Excel自带的功能,去实现工作表目录功能就显得有些局限性了,并不是很人性化。
PS:我们看看Excel自带的工作表目录功能去实现这个功能,是不是感觉不是很友好?
比如我们的工作表多达几百个时,一页显示不完全,对于我们查看数据明显就很不方便,很不人性化;哈哈,在我们追求美观的人来说,这个界面其实不是很友好!使用的时不够高大上!所以我们今天和大家分享的是使用Excel VBA自动建立超链接的代码,和大家一起学习!
今天的代码主要涉及2个知识点,也是代码的主要功能:
1、For each--Next
利用For each next循环,在我们当前的工作薄的所有的工作表之间进行循环,提取工作表的名字。
2、ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", SubAddress:="'" & strShtName & "'!a1", TextToDisplay:=strShtName
代码里用到了Hyperlinks.Add语句,这个语句主要是添加超链接,也是本程序的核心代码。大家有时间可以试试录制宏的功能,即可得出此代码。
还是给大家看一下源数据:
原数据中存在10个工作表,我们现在要求在Total工作表中实现一个目录带超链接的功能。
我们看看执行的效果:
看了上面的动画,是不是感觉非常适合批量建立大量的目录带超链接。其实上述的代码也是非常简单.
我们只需要将以下的代码复制到Excel的VBE窗口的模组中即可,然后设置宏代码运行的按键,点击执行,就可看到结果。
附上Excel VBA代码如下:
Sub Hyperlinkadd()
Dim sht As Worksheet, i&, strShtName$
Application.DisplayAlerts = False
Columns(1).ClearContents
'清空A列数据
Cells(1, 1) = "目录"
'第一个单元格写入字符串"目录"
i = 1
'将i的初值设置为1.
For Each sht In Worksheets
'循环当前工作簿的每个工作表
strShtName = sht.Name
If strShtName <> ActiveSheet.Name Then
'如果sht的名称不是当前工作表的名称则开始在当前工作表建立超链接
i = i + 1
'累加i
ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", SubAddress:="'" & strShtName & "'!a1", TextToDisplay:=strShtName
'建超链接
End If
Next
Application.DisplayAlerts =True
End Sub
以上就是今天要和大家分享的技巧,希望对大家有所帮助,祝各位一天好心情!
唯有不断学习,才能不被淘汰!
Excel中每一个函数都有特定的用途,不是它们没有用,而是你不了解或用不着,建议同学们收藏起来,万一要用着了呢
如果你是新同学,长按下面二维码 - 识别图中二维码 - 关注,就可以每天和我一起学Excel了。
标签:蓦然回首,代码,Excel,工作,超链接,strShtName,目录 From: https://blog.51cto.com/u_15705258/5808906