Vba 检查列以查看列中是否存在命名范围

Vba 检查列以查看列中是否存在命名范围,vba,excel,Vba,Excel,我在一个电子表格中处理300多个命名范围,每个命名范围都是用于标识单个列的单个单元格。(它们不是列名,因为有许多重复项) 问题:如果我有一个命名范围: myRange = Range(cells(2,7).address) 活性细胞是 cells(5,7) 是否有办法确定我可以从活动单元格中的列号中确定我与命名区域在同一列中,并返回该命名区域的名称 像 Function Get_RangeName(MyColumn) as string For Each nm In ThisWork

我在一个电子表格中处理300多个命名范围,每个命名范围都是用于标识单个列的单个单元格。(它们不是列名,因为有许多重复项)

问题:如果我有一个命名范围:

myRange = Range(cells(2,7).address) 
活性细胞是

cells(5,7)
是否有办法确定我可以从活动单元格中的列号中确定我与命名区域在同一列中,并返回该命名区域的名称

Function Get_RangeName(MyColumn) as string
   For Each nm In ThisWorkbook.Names
       if ***code to get coloumn number here*** = Mycolumn then
          Get_RangeName = nm.name
       end if
   next nm
end function
我只是不知道如何从名称中获取列号,请使用来确定这两个区域是否共享任何单元格

if not intersect(columns(cells(5,7).column), range("myNamedRange")) is nothing then
    'the full column and the named range share at least 1 cell
end if
使用确定两个区域是否共享任何单元格

if not intersect(columns(cells(5,7).column), range("myNamedRange")) is nothing then
    'the full column and the named range share at least 1 cell
end if
可以使用Intersect()函数

可以使用Intersect()函数


范围(nm).Column将返回范围的列号,该范围的名称包含在字符串变量中nm@YowE3K-如果命名范围包含多个列怎么办?@Jeeped每个列仅为一列。这是一个权宜之计,在重新设计期间只会持续几个月。范围永远不会超过一个单元格。@在这个问题中,每个指定的范围都是指一个单元格,因此它们不会跨越列。@YowE3K-是的,你是对的。我想我为提供更多的通用性所做的努力是错误的。Range(nm)。Column将返回范围的列号,该范围的名称包含在字符串变量中nm@YowE3K-如果命名范围包含多个列怎么办?@Jeeped每个列仅为一列。这是一个权宜之计,在重新设计期间只会持续几个月。范围永远不会超过一个单元格。@在这个问题中,每个指定的范围都是指一个单元格,因此它们不会跨越列。@YowE3K-是的,你是对的。我想我为提供更多的普遍性所做的努力是错误的。