EXCEL表格怎么用宏建目录表

发布网友

我来回答

2个回答

热心网友

注意把代码前的#001这样的要去掉。我这有VBA的技巧,如果需要可以留邮箱给我。

#001 Private Sub Worksheet_Activate()
#002 Dim sh As Worksheet
#003 Dim a As Integer
#004 Dim R As Integer
#005 R = Sheet1.[A65536].End(xlUp).Row
#006 a = 2
#007 If Sheet1.Cells(2, 1) <> "" Then
#008 Sheet1.Range("A2:A" & R).ClearContents
#009 End If
#010 For Each sh In Worksheets
#011 If sh.CodeName <> "Sheet1" Then
#012 Sheet1.Cells(a, 1).Value = sh.Name
#013 a = a + 1
#014 End If
#015 Next
#016 End Sub
代码解析:
工作表的Activate事件,在“目录”工作表激活时自动建立工作簿中除“目录”工作表外所有工作表的目录。
第2、3、4行代码声明变量类型。
第5行代码取得A列最后非空单元格的行号。
第6行代码设置变量a的初始值为2,从A2单元格开始建立工作表目录。
第7行到第9行代码判断是否存在工作表目录,如果存在先清空原来的目录,以便更新目录。
第10行到第15代码遍历工作簿的所有工作表,将除“目录”工作表外所有工作表的名称写入到A列单元格中。
为了建立到各工作表的链接,使用工作表的SelectionChange事件,如下面的代码所示。
#001 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
#002 Dim R As Integer
#003 R = Sheet1.[A65500].End(xlUp).Row
#004 On Error Resume Next
#005 If Target.Count = 1 Then
#006 If Target.Column = 1 Then
#007 If Target.Row > 1 And Target.Row <= R Then
#008 Sheets(Target.Value).Select
#009 End If
#010 End If
#011 End If
#012 End Sub
代码解析:
工作表的SelectionChange事件,当选择A列工作表目录中工作表名称时自动选择该单元格所对应的工作表。
第5、6、7行代码*该事件触发的条件。
第8行代码选择单元格所对应的工作表。
“目录”工作表激活后自动在A列建立工作簿中除“目录”工作表以外所有表的目录

热心网友

你好,如下:
Sub 提取工作表名()
Dim i As Integer
For i = 1 To Sheets.Count
Worksheets("目录").Range("E" & i + 1) = Sheets(i).Name '目录名可以更改
Worksheets("目录").Hyperlinks.Add Anchor:=Worksheets("目录").Range("E" & i + 1), _
Address:="", SubAddress:="'" & Worksheets(i).Name & "'!E2"
Next i
End Sub

或者你可以发给我文件,也可以告诉我详细的要求哦,我这里正好也有一些代码。

没有用过WPS,你可以试一下。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com