Excel中的VBA脚本 - 根据判断条件批量修改表名,并给指定单元格赋值,最后创建带有超链接的目录

现在我有一个需求,需要把表1名字改为D1,表2改为D1Result,表3改为D2,表4改为D2Result,以此类推,在此基础上对每一个非Result表格的E4单元格赋值,值是当前表的表名。因为表格太多了,不想一个一个手动改,想由VB脚本实现,那么我该怎么写呢?经过一番百度和研究,最终写出来的脚本如下(本地环境可以运行)

Sub Run()

For i = 1 To Worksheets.Count
If i Mod 2 = 0 Then
Sheets(i).Name = "D" & i / 2 & "Result"
Else
Sheets(i).Name = "D" & (i + 1) / 2
Sheets(i).Cells(4, 5) = Sheets(i).Name
End If
Next
End Sub


上图最终效果会把表名依次改为:D1,D1Result,D2,D2Result...以此类推

并且对每个D1,D2表(即非Result表)的E4单元格赋值,值为当前表的表名


那么表格太多,如果我要在第一页添加一个带有超链接的目录怎么办呢?那么就可以在最前面新建一个新的表格,然后用如下脚本生成对后面所有表格的超链接 (注意因为我的目录是添加到第一页的,所以后面的所有表格的页码都被加一了,因此对i的判断做了修改)

Sub Run1()

For i = 2 To Worksheets.Count
If i Mod 2 = 0 Then
Sheets(1).Cells(i / 2, 1) = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i / 2, 1), Address:="", SubAddress:=Sheets(i).Name & "!A1", ScreenTip:="Forward To"
Else
Sheets(1).Cells((i - 1) / 2, 2) = Sheets(i).Name
ActiveSheet.Hyperlinks.Add Anchor:=Cells((i - 1) / 2, 2), Address:="", SubAddress:=Sheets(i).Name & "!A1", ScreenTip:="Forward To"

End If

Next
End Sub

最终效果如下图↓

Excel中的VBA脚本 - 根据判断条件批量修改表名,并给指定单元格赋值,最后创建带有超链接的目录_第1张图片




你可能感兴趣的:(Excel中的VBA脚本 - 根据判断条件批量修改表名,并给指定单元格赋值,最后创建带有超链接的目录)