VBA:从2个范围的单元格中获取范围的名称

时间:2016-02-12 09:23:32

标签: excel vba

我有2个命名范围,它们指的是同一个单元格,只有那个单元格。我希望能够在该单元格是目标时获取这些范围的名称,但只返回其中一个。

示例:

指定范围' DATA_CELL'是指细胞A1。 命名范围' EVENT_CELL'是指单元格A1。

检测到单元格A1中的单击时,Target.Name.Name仅返回EVENT_CELL。

如果EVENT_CELL指的是多个小区,例如A1:A3,Target.Name.Name返回DATA_CELL。

有没有人知道为什么会这样,以及我如何能够可靠地得到两个范围的名称,这些范围指的是哪个区域可能引用的任何其他单元格?

感谢。

1 个答案:

答案 0 :(得分:0)

如何做到这一点,遍历当前工作表上的每个名称,并仅作为消息返回与活动单元格相关联的那些

Sub Find_Names()

' Loop through all names in workbook.
For Each n In ActiveWorkbook.Names

    ' Check to see if the name refers to the ActiveSheet.
    If InStr(1, n.RefersTo, ActiveSheet.Name, vbTextCompare) > 0 Then

        ' If name refers to ActiveSheet, then find the intersection of the
        ' named range and the ActiveCell.
        Set y = Intersect(ActiveCell, Range(n.RefersTo))

        ' Display a message box if the ActiveCell is in the named range.
        If Not y Is Nothing Then MsgBox "Cell contains name : " & n.Name

    End If

Next

' Display message when finished.
MsgBox "No More Names!"

End Sub