首发于 VBA&VSTO
提取各工作表名制作目录VBA

提取各工作表名制作目录VBA

Sub 提取工作表名()
Dim i As Integer '定义i为整型变量
On Error Resume Next '防止工作簿里没有目录工作表,在删除时报错
Application.DisplayAlerts = False '关闭询问对话框
Worksheets("目录").Delete '删除目录工作表
Application.DisplayAlerts = True '打开询问对话框
Sheets.Add before:=Sheets(1) '在第一个工作表前插入一张新的工作表
Sheets(1).Name = "目录" '把第一个工作表取名为“目录”
Cells(1, 1) = "目录" '在目录工作表中的A1单元写于“目录”两字
For i = 2 To Worksheets.Count 'Worksheets.Count统计工作的总数,整句代码的意思遍历每一个作表
Cells(i, 1) = Sheets(i).Name '依次把工作表的名字写A列
Next i '下一个i
End Sub


Sub 清空()
Worksheets("目录").Columns("A").ClearContents
Worksheets("目录").Activate
End Sub


提取各工作表名制作目录且还要建立超链接
Sub 提取工作表名()
Dim i As Integer '定义i为整型变量
On Error Resume Next '防止工作簿里没有目录工作表,在删除时报错
Application.DisplayAlerts = False '关闭询问对话框
Worksheets("目录").Delete '删除目录工作表
Application.DisplayAlerts = True '打开询问对话框
Sheets.Add before:=Sheets(1) '在第一个工作表前插入一张新的工作表
Sheets(1).Name = "目录" '把第一个工作表取名为"目录"
Cells(1, 1) = "目录" '在目录工作表中的A1单元写于"目录"两字
For i = 2 To Worksheets.Count 'Worksheets.Count统计工作的总数,整句代码的意思遍历每一个作表
Cells(i, 1) = Sheets(i).Name '依次把工作表的名字写A列
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:="", _
SubAddress:=Worksheets(i).Name & "!A1", TextToDisplay:=Cells(i, 1).Value
'由代码过长,选打一个_然后加一个空格,这是把代码分行
' 根据录制的代码修改,把选中的Selection改为Cells(i,1),把 "Sheet3!A1"改为Worksheets(i).Name & "!A1",一定要是记得是工作表名
'所以加了一个Name属性,把“Savetime”改为Cells(i, 1).Value
Next i '下一个i
End Sub
Sub 清空()
Worksheets("目录").Columns("A").ClearContents
Worksheets("目录").Activate
End Sub
'这是我们在A1单元格输入“Savetime”之后录制的一个给它添加超链接的宏得到的宏代码
'Sub Macro1()

' ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
' "Sheet3!A1", TextToDisplay:="Savetime"
'End Sub
六. 实例 提取工作表制目录还要建立超链接还要添加一个“返回目录”的按钮
Sub 提取工作表名()
Dim i As Integer '定义i为整型变量
On Error Resume Next '防止工作簿里没有目录工作表,在删除时报错
Application.DisplayAlerts = False '关闭询问对话框
Worksheets("目录").Delete '删除目录工作表
Application.DisplayAlerts = True '打开询问对话框
Sheets.Add before:=Sheets(1) '在第一个工作表前插入一张新的工作表
Sheets(1).Name = "目录" '把第一个工作表取名为"目录"
Cells(1, 1) = "目录" '在目录工作表中的A1单元写于"目录"两字
For i = 2 To Worksheets.Count 'Worksheets.Count统计工作表的总数,整句代码的意思遍历每一个作表
Worksheets(1).Activate '一定要加上这一句,由于我们为了添加按钮时,把添加按钮的那个工作表设置为活动工作表,添加之后还要把“目录”工作表设置为当前工作表
Cells(i, 1) = Sheets(i).Name '依次把工作表的名字写A列
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:="", _
SubAddress:=Worksheets(i).Name & "!A1", TextToDisplay:=Cells(i, 1).Value
'由代码过长,选打一个_然后加一个空格,这是把代码分行
' 根据录制的代码修改,把选中的Selection改为Cells(i,1),把 "Sheet3!A1"改为Worksheets(i).Name & "!A1",一定要是记得是工作表名
'所以加了一个Name属性,把“Savetime”改为Cells(i, 1).Value
' 添加“返回目录”按钮

Worksheets(i).Shapes.AddTextEffect(msoTextEffect32, "返回目录", "黑体", 16#, _
msoTrue, msoFalse, 600#, 20.25).Select
Sheets(i).Select
Sheets(i).Activate
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:= _
"", SubAddress:=Worksheets(1).Name & "!A1"
Range("A1").Select
Next i '下一个i
End Sub

Sub 清空()
Dim Sp As Shape, sh As Worksheet
Worksheets("目录").Columns("A").Clear
For Each sh In Worksheets
sh.Activate
For Each Sp In ActiveSheet.Shapes
Sp.Delete
Next Sp
Next sh
End Sub

添加工作表
添加工作表的方法是Add,其表达式Add(Before/After,Count,Type)。Before前面,After后面,Count插入的数量,Type是插入的类型,如正常工作表Xlworksheet,图表工作表Xlchart,还有宏表工作表这里就不多说了。如果省略第二参,第三参数就会插入一张正常工作表
实例 在第一张工作表前面插入5张工作表
Sub test4() '在第一张工作表前面插入5张工作表
Sheets.Add Before:=Worksheets(1), Count:=5
End Sub

发布于 2021-02-10 14:48

文章被以下专栏收录