excel学习库

excel表格_excel函数公式大全_execl从入门到精通

VBA批量提取工作表名生成能自动更新目录

下面的Excel文件,包含多个工作表,如下所示:

用一段VBA代码,一键提取所有工作表表名,放在一张新的工作表。随着工作表的减少或者增加,在点击“按扭”后,可以自动重新提取目录。效果如下:

操作步骤如下:

第一步:在“1月份”工作表前面插入一张空白工作表,重命名为:目录

第二步:在“目录”工作表标签上,点击右键,选择“查看代码”

第三步:查看代码会激活VBE编辑器界面,点击插入→模块,并且复制以下代码到右边编辑区。

Sub 提取表名()

Dim sht As Worksheet, myRange As Range, mycol%, myrow%

On Error GoTo 100

Set myRange = Application.InputBox("只能选一个单元格!!!", "选择目录起始单元格", , , , , , 8)

If myRange.Count <> 1 Then Exit Sub

myrow = myRange.Row

mycol = myRange.Column

With myRange.Resize(500, 1)

.ClearContents

.NumberFormat = "@"

End With

myRange = " 目录"

For Each sht In Sheets

If sht.Name <> ActiveSheet.Name Then

myrow = myrow + 1

Set Rng = Cells(myrow, mycol)

Rng.Value = sht.Name

ActiveSheet.Hyperlinks.Add anchor:=Rng, _

Address:="", SubAddress:="'" & sht.Name & "'!a1", TextToDisplay:=sht.Name

End If

Next

100:

End Sub

第四步:点击“保存“按钮,弹出的另存为“对话框,选择文件保存类型为:Excel启用宏的工作薄,保存即可。

第五步:关闭VBE编辑器,回到Excel界面。

第六步:插入一个任意形状,输入一些提示文字,截图如下:

第七步:点击形状,右键选择“指定宏”。

第八步:选择我们上面在模块1录入的“提取表名”的代码,确定。

第九步:点击按钮,弹出的选择目录起始单元格”,我们点击B2单元格,点击确定,程序即可为我们自动添加所有工作表名称。

第十步:结果如下图所示:

当以后工作表增加或减少时,点击按钮自动刷新

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接