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

如何在Excel VBA中在Detail工作表显示Group表的工作表级名称列表

解决方法:提取Group工作表作用域名称到Detail工作表

原代码问题说明

你使用的ListNames方法默认只输出工作簿级名称,不会识别工作表级的名称,所以无法显示Group里的三个名称,而且依赖选区的写法也不够稳定。

正确VBA代码

Sub ListSheetLevelNames()
    Dim wsDetail As Worksheet
    Dim wsGroup As Worksheet
    Dim nm As Name
    Dim rowNum As Integer
    
    ' 指定目标和源工作表
    Set wsDetail = ThisWorkbook.Worksheets("Detail")
    Set wsGroup = ThisWorkbook.Worksheets("Group")
    
    rowNum = 1 ' 从第1行开始写入数据
    
    ' 清空Detail原有内容(可选,按需保留)
    wsDetail.Cells.ClearContents
    
    ' 遍历所有名称,筛选Group工作表作用域的名称
    For Each nm In ThisWorkbook.Names
        If nm.Parent.Name = wsGroup.Name Then
            wsDetail.Cells(rowNum, 1).Value = nm.Name
            rowNum = rowNum + 1
        End If
    Next nm
End Sub

代码说明

  • 明确指定Detail和Group工作表对象,避免依赖当前激活的工作表
  • 通过nm.Parent.Name判断名称的作用域所属工作表,精准筛选目标名称
  • 将符合条件的名称依次写入Detail工作表的A列,逐行向下填充

执行步骤

  1. 按Alt+F11打开VBA编辑器
  2. 右键当前工作簿,选择「插入」→「模块」
  3. 将上述代码粘贴到模块中
  4. 运行该宏,即可在Detail工作表的A列看到mk_1、mk_2、mk_3

内容的提问来源于stack exchange,提问作者mps info

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:07:04