Globale und lokale Namen
Peter
Ich habe in einer Datei mehrere Namen mehrmals vergeben, so bezieht sich
der Name "abc" auf Daten1!A3 (globaler Name)
der Name "abc" auf Daten2!A3 (lokaler Name) und
der Name "abc" auf Daten3!A3 (lokaler Name)
Ich möchte eine Funktion schreiben, die mir die "Fundstellen" der gleichen Namen zurückgibt. Dabei sollten lokale Namen zusätzlich in eckigen Klammern stehen. Für mein Beispiel heisst das:
die Funktion =NamAuswertung("abc") gibt folgenden String zurück:
Daten1!A3 - [Daten1!A3] - [Daten1!A3]
Ich kann zwar abfragen, ob ein Name mehrmals vorkommt (vgl. nachstehend). Ich möchte jedoch, wenn die Variable j um 1 erhöht wird ausgehend von WkBk.Names(i).Name abfragen können, ob es sich um ein globaler Name handelt (und wo ersteht) oder ob es sich um ein lokaler Name handelt (und wo er steht) und diese Informationen dann einer Variable zuweisen, die ich gesamthaft zurückgebe.
Gruss, Peter
<pre>Function AdresseTabelleBereich1(str As String)
Dim CountOfNames As Long, i As Long, j As Long, WkBk As Excel.Workbook
Dim strVergleich As String
Set WkBk = ThisWorkbook
CountOfNames = WkBk.Names.Count
For i = 1 To CountOfNames
strVergleich = WkBk.Names(i).Name
If Mid(strVergleich, InStr(strVergleich, "!") + 1) = str Then j = j + 1
Next
If j > 1 Then
AdresseTabelleBereich1 = "nicht eindeutig"
Else
With ThisWorkbook.Names(str).RefersToRange
AdresseTabelleBereich1 = .Parent.Name & "!" & .Address(0, 0)
End With
End If
End Function</pre>