加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[Excel技能篇]一键生成带超链接的工作表目录表

(2016-07-01 07:03:47)
标签:

杂谈

作者:@Excelers

一个Excel工作薄,可能包含多个工作表;这时我们就希望能有一个工作表目录,一方面,可以纵览薄里有多少表、都是什么名字,另一方面,也可以通过超链接快速查看相关工作表内容。

那么说起工作表目录来,您首先想到的是什么?

函数?

厉害!不愧是拥有函数神技的办公能手。

http://ww3/large/005IRek6gw1f5e0zgpsakj305a05a0sl.jpg



不过一般情况下,我们可以使用Excel自带的工作表目录功能。

http://ww3/large/005IRek6gw1f5c4mx42lqg30fo0d71kx.gif


如上操作动画所示,右键单击工作表左下角的两个小三角及之间的区域,Excel就会弹出一个类似工作表目录的界面;单击界面上的相应表名可以激活对应的工作表。

是不是很方便呢?

然而虽然已经很方便了,但是——确实还不够。

(题外话:学生时代俺最擅长的就是用[然而……但是……]造句~哈哈)


有些时候,Excel自带的这个工作表目录界面就有些不够看了。

工作表很多时,它的界面太小,一页放不下,查看起来很不方便;另外它也不够美观,制作Excel模版时,给别人用起来又有点怪,别人问你,大哥,你做的Excel模版,我想找某个工作表,好难啊。你回说:笨蛋,你点这里,点那样,这样那样……嗯嗯,What are you 懂?……

当然,最重要的一点,它不好欺负,我们看它哪里不爽,不好修理它,比如想把界面拉宽放大点,一般人就没辙,二班人就很二。

所以还得回到函数的方法上?

——NO!

函数虽好,但需要用到宏表函数,还得定义名称,确实有点绕了。

打个响指,请看大标题——我们今天分享的是一键生成带超链接的工作表目录


请看操作动画:

http://ww2/large/005IRek6gw1f5dn3dp4edg30jk0d84qq.gif


动画中所复制的代码如下: 

Sub ml()

    Dim sht As Worksheet, i&, n$

    Columns(1).ClearContents

    '清空A列数据

    Cells(1, 1) = "目录"

    '第一个单元格写入字符串"目录"

    i = 1

    '将i的初值设置为1.

    For Each sht In Worksheets

        '循环当前工作簿的每个工作表

        n = sht.Name

        If n <> ActiveSheet.Name Then

        '如果sht的名称不是当前工作表的名称则开始在当前工作表建立超链接

            i = i 1

            '累加i

            ActiveSheet.Hyperlinks.Add anchor:=Cells(i, 1), Address:="", _

                SubAddress:=n & "!a1", TextToDisplay:=n

                           '建超链接

        End If

    Next

End Sub


酱紫是不是很有趣?

如果想【目录】美观,可以选择【图形和形状】来作为宏代码运行的按钮,当然也可以对目录内容所在单元格做相应的美化处理。

最后补充一点代码解析:

小代码里用到了Hyperlinks.Add语句,这里用一个图片来解释它的每个参数。

http://ww3/large/005IRek6gw1f5c4ta5byoj30fz0303zq.jpg


转载请注明出处,如有兴趣,也可以关注下 @Excelers 

拥抱,明见。


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有