如何在excel VBA中获取下拉列表引用的范围的名称

如何在excel VBA中获取下拉列表引用的范围的名称,excel,vba,Excel,Vba,我有一个工作表事件,每当选择下拉列表时,就会触发userform。下拉列表位于sheet1中,而参考在sheet2中使用命名范围。现在,我需要该工作表事件仅触发引用特定命名范围的下拉列表的userform。我计划使用 If Not Intersect(Target, Range("NAMED_RANGE_1")) Is Nothing Then //do not show userform, be happy! else //show userform, you are awesome!

我有一个工作表事件,每当选择下拉列表时,就会触发userform。下拉列表位于sheet1中,而参考在sheet2中使用命名范围。现在,我需要该工作表事件仅触发引用特定命名范围的下拉列表的userform。我计划使用

If Not Intersect(Target, Range("NAMED_RANGE_1")) Is Nothing Then
  //do not show userform, be happy!
else
  //show userform, you are awesome! 
但我无法选择下拉列表的引用命名范围。有人能告诉我如何获取所选下拉列表的命名范围吗


谢谢

您可以通过以下方式获得参考列表(我假设您使用的是工作表_SelectionChange(…)函数):

如果没有为目标设置验证,则跳过“GoTo endSub”错误 如果Target.Validation.Formula1“=命名的_范围_1”,则 '不要显示userform,要快乐! 其他的 '显示用户表单,你太棒了! 如果结束 endSub: 出口接头
确保
命名的_RANGE_1
目标
位于同一工作表中。否则它们不能相交。
On Error GoTo endSub   ' skip if no validation set for Target
If Target.Validation.Formula1 <> "=NAMED_RANGE_1" Then
    ' do not show userform, be happy!
Else
    ' show userform, you are awesome!
End If

endSub:
    Exit Sub