You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 06:35:30