我正在编写一个个人宏,在状态栏上显示有关ActiveCell的重要信息,例如它所属的表或数据透视表的名称(如果有),它拥有的无格式值等等。
现在我还要显示包含单元格的命名范围的名称。我想我可以浏览ActiveWorkbook的一些Names Collection并使用intersect进行测试,但有没有更简单的方法?
答案 0 :(得分:3)
最简单的方法是遍历名称。
Function getRangeNames(Target As Range)
Dim n As Name
Dim s As String
For Each n In ThisWorkbook.Names
On Error Resume Next
If Not Intersect(Target, n.RefersToRange) Is Nothing Then
s = s & n.Name & ", "
End If
On Error GoTo 0
Next n
getRangeNames = Left(s, Len(s) - 2)
End Function