我有2个命名范围,它们指的是同一个单元格,只有那个单元格。我希望能够在该单元格是目标时获取这些范围的名称,但只返回其中一个。
示例:
指定范围' DATA_CELL'是指细胞A1。 命名范围' EVENT_CELL'是指单元格A1。
检测到单元格A1中的单击时,Target.Name.Name仅返回EVENT_CELL。
如果EVENT_CELL指的是多个小区,例如A1:A3,Target.Name.Name返回DATA_CELL。
有没有人知道为什么会这样,以及我如何能够可靠地得到两个范围的名称,这些范围指的是哪个区域可能引用的任何其他单元格?
感谢。
答案 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