如何检查单元格是否属于动态名称范围

时间:2017-09-12 09:53:17

标签: vba excel-vba excel

我有一些动态名称范围,我想检查VBA是否有一个单元格(活动单元格)属于其中一个单元格。

例如,我创建了名称范围

nameTest1=OFFSET(A1;0;0;COUNT(A1:A12))

我想检查活动单元格是否在此范围内。

我找到了各种方法,但没有找到动态名称范围。

有办法吗?

此致

Thanasis

3 个答案:

答案 0 :(得分:4)

进行测试,nameTest1是一个命名范围。

If Not Application.Intersect(ActiveCell, Range("nameTest1")) Is Nothing Then
    MsgBox "activecell is in range nameTest1"
Else
    MsgBox "activecell is not in range nameTest1"
End If

答案 1 :(得分:0)

要确定活动单元属于哪个命名范围,请尝试此

For Each nr In ActiveWorkbook.Names 
  If Not Application.Intersect(ActiveCell, Range(nr.Name)) Is Nothing Then 
   MsgBox "activecell intersect with " & nr.Name 
 End If 
Next 

答案 2 :(得分:0)

我稍微调整了h2so4的解决方案:

For Each nr In ActiveWorkbook.Names
    On Error Resume Next
    If Not Application.Intersect(ActiveCell, Range(nr.Name)) Is Nothing Then
        If Err.Number = 0 Then
            MsgBox "activecell intersect with " & nr.Name
        End If
    End If
    Err.Clear
Next 

感谢您的帮助!