分享

VBA代码 | 一键生成工作簿目录

 L罗乐 2017-03-08


◇ VBA语法介绍

 

Expression.Hyperlinks.AddAnchor, Address[, SubAddress][, ScreenTip][, TextToDisplay]

 

【Expression】指在哪一个工作表中建立超链接,如Activesheet,表示在当前激活的工作表中建立超链接

 

【参数1】 Anchor:=单元格地址, 此参数不可以省略;参数含义:用于存放超链接的单元格地址

Anchor:=Selection 指将超链接存放于当前选中的单元格;

Anchor:=Range('A1') 指将超链接存放于A1单元格;

Anchor:=Cells(2,1) 指将超链接存放于A2单元格 。

 

【参数2】Address:=链接地址文本,注意此参数不可省略,需要使用半角英文双引号将地址包括起来。若没有参数则可以写成Address:='',不可以省略此参数 。


链接文本可以是一个网络地址,也可以是本地硬盘上的文件路径 。当链接的文档与当前工作簿在同一文件路径下时,只使用链接文件的文件名,不包括链接文件的路径,如Adress:='示例文件.doc';当超链接指向的文件与当前工作簿不在一个文件路径下时,则会包括链接文件的完整的绝对的路径,如:Address:='F:/示例文件夹/一键生成目录超链接.doc' 。

 

【参数3】[SubAddress]:=本工作簿中的单元格地址文本,子地址,此参数可以省略;

 

【参数4】[ScreenTip]:=屏幕提示文字文本,此参数可以省略;

 

【参数5】[TextToDisplay]:=要显示的文本,此参数可以省略 。

 

◇ 案例



Public SubCreateIndex()

Dimi As Integer

i= 1

Sheets.Add Before:=Sheet(1)

Activesheet.Name= '目录表'

Do While i<= Sheets.Count

ActiveSheet.Hyperlinks.AddAnchor:=Cells(i, 1), Address:='', SubAddress:= _

                 Sheets(i).Name & '!A1',ScreenTip:='单击转到 - ' & Sheets(i).Name, _

                TextToDispla y:=Sheets(i).Name

i=i 1

Loop

ActiveWorkbook.Save

End Sub

 



代码分析:

1、循环语句:

Do While <循环条件>

<语句组1>

     [Exit Do]

<语句组2>

Loop


2、Sheets.Count 表示工作簿中工资表的张数;

  Sheets(i).Name 表示工资表名称;

  Sheets.Add Before:=Sheet(1) 指在第一张工作表前添加一张名称为“目录表”的工作表;

  Cells([RowIndex],[ColumnIndex]) 指当前单元格地址,如Cells(1,2)表示在第一行第二列的B1单元格 。


3、Activeworkbook.Save 保存当前工作簿;


4、代码设计整体思路:

   

代码预计效果:

预计在代码执行之后,在当前工作簿的最前面添加一张名称为“目录表”的工作表,同时在A列从A1单元格开始,列出当前工作簿中所有工作表标签的名称,并添加指向对应工作表的超链接,当鼠标悬停在超链接文字上时,显示将会转到哪一个工作表,屏幕提示文字格式为“单击转到 - xxxxx” 。


  (1).首先在工作簿中第一张工资表前添加一张“目录表”工资表,用于存放制作的目录;


  (2).接着执行循环操作:在第一张工作表的A1单元格建立一个超链接,SubAddress为第一张工作表的标签名称“目录表”,(因为链接指向的不是网络链接地址,所以Address参数为空,写成Address:='',但不可以省略)屏幕显示文字为“单击转到 – 目录表”,要显示的文字为“目录表”,之后对第二张工作表,第三张工作表执行相同的程序,循环的次数为当前工作簿中工资表的张数 。




为了防止排版出错导致大家不方便阅读和理解代码,现截图如下:


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多