找到给定单元格所属的命名范围

时间:2016-08-03 09:54:32

标签: excel excel-vba vba

我正在编写一个个人宏,在状态栏上显示有关ActiveCell的重要信息,例如它所属的表或数据透视表的名称(如果有),它拥有的无格式值等等。

现在我还要显示包含单元格的命名范围的名称。我想我可以浏览ActiveWorkbook的一些Names Collection并使用intersect进行测试,但有没有更简单的方法?

1 个答案:

答案 0 :(得分:3)

最简单的方法是遍历名称。

Function getRangeNames(Target As Range)
    Dim n As Name
    Dim s As String
    For Each n In ThisWorkbook.Names
        On Error Resume Next
        If Not Intersect(Target, n.RefersToRange) Is Nothing Then
            s = s & n.Name & ", "
        End If
        On Error GoTo 0
    Next n

    getRangeNames = Left(s, Len(s) - 2)
End Function