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

如何筛选Pricing Worksheet中A1:AD190范围内的命名区域

修改后的VBA代码(列出指定范围内的命名区域)
Sub ListNamedRangesInTarget()
    Dim nm As Name
    Dim targetSheet As Worksheet
    Dim targetRange As Range
    Dim nmRange As Range
    
    ' 设置目标工作表和指定范围
    Set targetSheet = ThisWorkbook.Worksheets("Pricing Worksheet")
    Set targetRange = targetSheet.Range("A1:AD190")
    
    Debug.Print "Pricing Worksheet中A1:AD190范围内的命名区域:"
    
    For Each nm In ThisWorkbook.Names
        On Error Resume Next ' 跳过指向常量/非单元格的命名区域
        Set nmRange = nm.RefersToRange
        On Error GoTo 0
        
        ' 校验命名区域所属工作表,以及是否与目标范围存在交集
        If Not nmRange Is Nothing Then
            If nmRange.Parent.Name = targetSheet.Name Then
                If Not Intersect(nmRange, targetRange) Is Nothing Then
                    Debug.Print "- " & nm.Name & " : " & nm.RefersTo
                End If
            End If
        End If
    Next nm
End Sub

关键改动说明

  • 明确目标范围:直接定义要检查的工作表和单元格区间A1:AD190,避免字符串拆分判断的潜在误差
  • 错误防护:加入错误处理逻辑,跳过那些指向常量、公式而非单元格区域的命名区域,防止代码报错中断
  • 范围交集判断:用Intersect函数判断命名区域是否与目标范围存在重叠;如果需要仅统计完全包含在目标范围内的命名区域,可以将交集判断替换为:
    If nmRange.Address = Intersect(nmRange, targetRange).Address Then
    
  • 输出有效信息:不再仅计数,而是打印符合条件的命名区域名称和对应的引用地址,方便查看

内容的提问来源于stack exchange,提问作者D M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:43:13