Excel-VBA, referstorange ist leer

lukasS

Erfahrenes Mitglied
Hallo,

ich habe in meiner Excel-Tabelle über alle Tabellenblätter verschiedene Bereichsnamen definiert. Wenn eine Tabelle gelöscht wird, bleiben die Namen trotzdem erhalten. Beim Zell-Bezug steht dann allerdings "#BEZUG!".

In meinem VBA hole ich mir alle Bereichsnamen und durchlaufe eine Schleife wo ich mir dann anhand des Name-Objektes das Range mit RefersToRange hole:

Code:
For Each rangeName In ActiveWorkbook.Names
      Dim range As range
      Set range = rangeName.RefersToRange''Fehler        
End If

Mein Problem ist jetzt aber, wenn ein Bereichsname nicht mehr vorhanden ist, kommt es zum Fehler "<Anwendungs- oder objektdefinierter Fehler>", da ein Bereich nicht mehr existert.

Wie kann ich in VBA abfragen ob das Range vorhanden ist? Geht das nur über das OnError? Ich würde lieber einen anderen Weg nehmen, leider ist meine VBA-Erfahrung nicht so groß.

Würde mich über Hilfe freuen!

Danke und Gruß

Lukas
 

lukasS

Erfahrenes Mitglied
Danke für die Antwort, leider fand ich auch nichts, deshalb hier auch meine Frage.
Die Funktion durchläuft ja nur alle Namen und fragt den Benutzer ob der Bereich gelöscht werden soll.

Ich habe jetzt zwar keine tolle Lösung, aber immerhin:

Code:
   For Each rangeName In ActiveWorkbook.Names
  
      ''aktueller Range wird aus dem NamensRange geholt

      Dim curRange As range
      Dim sName As String
      sName = rangeName.Name

      If (rangeName.Value = "=#REF!#REF!") Then
         GoTo ForEachEnd
      End If

      ''nach was damit

ForEachEnd:
     
   Next

Danke und Gruß

Lukas
 

Neue Beiträge