VBA技术需求:从指定工作表开始提取后续表名至Directory工作表
提取指定工作表后所有工作表名称到Directory的VBA方案
零基础操作步骤
- 打开目标Excel文件,按下
Alt + F11打开VBA编辑器 - 在左侧「工程资源管理器」里,右键点击你的工作簿名称,选择【插入】→【模块】
- 将下方代码复制粘贴到新弹出的模块窗口中
- 按下
F5运行代码,或者点击工具栏上的绿色运行按钮(三角形图标)
完整可用VBA代码
Sub ExtractSheetNames() Dim wsDir As Worksheet Dim startIndex As Integer Dim i As Integer Dim rowNum As Integer ' 定位或新建Directory工作表 On Error Resume Next Set wsDir = ThisWorkbook.Sheets("Directory") On Error GoTo 0 If wsDir Is Nothing Then Set wsDir = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) wsDir.Name = "Directory" End If ' 清空Directory的A列旧数据 wsDir.Range("A:A").ClearContents ' 获取从"S"之后开始的工作表索引 startIndex = ThisWorkbook.Sheets("S").Index + 1 ' 遍历并写入所有后续工作表名称 rowNum = 1 For i = startIndex To ThisWorkbook.Sheets.Count wsDir.Cells(rowNum, 1).Value = ThisWorkbook.Sheets(i).Name rowNum = rowNum + 1 Next i MsgBox "工作表名称提取完成!", vbInformation End Sub
代码说明
- 自动处理Directory工作表:如果工作簿里没有名为"Directory"的工作表,代码会自动新建一个;如果已有,就直接使用
- 动态适配工作表数量:不管后续新增或删除多少工作表,代码都会从"S"之后的第一个工作表开始,遍历到最后一个工作表,自动提取所有名称
- 清空旧数据:每次运行前会清空Directory的A列,避免旧数据和新数据混在一起
- 友好提示:运行完成后会弹出提示框,告诉你操作已完成
注意事项
- 确保工作簿中存在名为"S"的工作表,否则代码会报错
- 运行代码前建议先保存Excel文件,防止意外情况丢失数据
内容的提问来源于stack exchange,提问作者Jou789
相关产品推荐
相关产品推荐

