我在电子表格中处理了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
我只是不知道如何从名称中获取列号
答案 0 :(得分:4)
您可以使用Intersect()函数
Function Get_RangeName(MyColumn as Long) as string
For Each nm In ThisWorkbook.Names
if Not Intersect(Columns(Mycolumn),Range(nm)) Is Nothing then
Get_RangeName = nm.name
Exit For
end if
next nm
end function
答案 1 :(得分:3)
使用Intersect method确定两个范围是否共享任何单元格。
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