在Excel中生成目录和页码需要使用宏来实现,以下是具体的步骤:
1. 首先按下`Alt + F11`,打开Visual Basic for Applications (VBA)编辑器。
2. 在VBA编辑器中,点击"插入"菜单,选择"模块",插入一个新模块。
3. 在新模块中添加以下VBA代码:
```vba
Sub GenerateTableOfContents()
Dim ws As Worksheet
Dim tocSheet As Worksheet
'创建目录表工作表
Set tocSheet = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
tobSheet.Name = "目录"
'设置目录表标题样式
With tocSheet.Range("A1")
.Value = "目录"
.Font.Bold = True
.Font.Size = 14
End With
'设置页码表头
tocSheet.Range("A2").Value = "Sheet名字"
tocSheet.Range("B2").Value = "页码"
'为每个工作表生成目录和页码
For Each ws In ThisWorkbook.Sheets
'跳过目录表本身
If ws.Name <> "目录" Then
'添加Sheet名字和页码到目录表
tocSheet.Range("A" & tocSheet.Cells(tocSheet.Rows.Count, 1).End(xlUp).Row + 1).Value = ws.Name
tocSheet.Range("B" & tocSheet.Cells(tocSheet.Rows.Count, 2).End(xlUp).Row + 1).Value = ws.Index
ws.Select
'在第一个单元格插入目录链接
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", _
SubAddress:="目录!A" & tocSheet.Cells(tocSheet.Rows.Count, 1).End(xlUp).Row, _
TextToDisplay:=ws.Name
End If
Next ws
'调整目录表格式
With tocSheet
.Columns("A:B").AutoFit
.Range("A:B").HorizontalAlignment = xlCenter
End With
'在每个工作表底部插入页码
For Each ws In ThisWorkbook.Sheets
ws.Select
ActiveWindow.ScrollRow = 1
'在每个工作表底部插入页码
ActiveSheet.PageSetup.RightFooter = "Page &P of &N"
Next ws
'返回目录表
tocSheet.Select
End Sub
```
4. 点击VBA编辑器中的运行按钮(或按下F5键)运行宏。
5. 运行完宏后,会在Excel工作簿中生成一个名为"目录"的工作表,该工作表会列出其他工作表的名称和页码。每个工作表的底部页眉会显示页码。
- 相关评论
- 我要评论
-