AW: Aktuelle Zelle als Name
03.03.2006 11:24:57
ANdreas
Hallo Walter,
hier noch eine etwas erweiterte Lösung betreffend der Namen.
Hiermit ist es möglich von einem Bereich/Zelle alle überschneidenden Namen zurückgeben zu lassen. Wird kein Name gefunden, wird die .Address zurückgegeben:
Function NamesOfRange(rngParam As Range) As String
'Gibt alle Namen zurück, die sich mit dem rngParam überschneiden
Dim n As Name
Dim s$
If Not rngParam Is Nothing Then
For Each n In ActiveWorkbook.Names
If Not Intersect(n.RefersToRange, rngParam) Is Nothing Then _
s = s & n.Name & "/"
Next n
If s = "" Then
NamesOfRange = rngParam.Address(0, 0)
Else
NamesOfRange = Left(s, Len(s) - 1)
End If
Else
NamesOfRange = rngParam.Address(0, 0)
End If
End Function
Sub TestNamesOfRange()
MsgBox NamesOfRange(ActiveSheet.Range("A22"))
MsgBox NamesOfRange(ActiveSheet.Range("A1:A100"))
End Sub
Gruß
Andreas