Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: String auf Addresse prüfen

String auf Addresse prüfen
18.07.2022 07:06:22
Katja
Moin zusammen,
ich schreibe gerade an einer VBA Routine in der ich einen Rangenamen abfrage.
Dieser Name kann ein RefersTo auf eine Adresse haben oder einen Wert.
Jetzt möchte ich gerne wissen ob dort eine Adresse oder ein Wert eingetragen ist,
Die Standard Vorgehensweise mit On Error Goto möchte ich dabei aber vermeiden, andererseits möchte ich die Abfrage aber auch nicht zu kompliziert gestalten.
Hat da jemand eine Idee?
Gruß
Katja
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String auf Addresse prüfen
18.07.2022 08:55:51
ChrisL
Hi
Ich interpretiere mal Text-Zahl unterscheiden. Ansonsten bitte eine Beispieldatei hochladen.

If IsNumeric(Range("MeinBereichsname")) Then
MsgBox "Zahl"
Else
MsgBox "Text"
End If
oder

MsgBox IIf(IsNumeric(Range("MeinBereichsname")), "Zahl", "Text")
cu
Chris
Anzeige
AW: String auf Addresse prüfen
18.07.2022 11:15:00
Katja
Moin,
die Lösung dürfte zu einem 1004'er Fehler führen.
Hintergrund: Es geht RefersTo Parameter, der kann einen Text oder einen Adresse haben.
Hier mal einen Screenshoot vom Namensmanager: Userbild
Führe ich jetzt einen Range Zugriff aus, ist dort keine Adresse hinterlegt, dann erfolgt der Fehler 1004.
Genau das will ich umgehen.
Anzeige
AW: String auf Addresse prüfen
18.07.2022 11:35:06
ChrisL
Hi
Ich denke dies ist eine der wenigen Situationen, wo man mit einem provozierten Fehler arbeiten darf (zwar nicht hübsch, aber zweckmässig). Um die Übersichtlichkeit zu wahren, könnte man eine benutzerdefinierte Funktion verwenden.

Sub t()
If CheckMe("MeinBereichsname") Then
MsgBox "ist Adresse"
Else
MsgBox "ist Wert"
End If
End Sub

Function CheckMe(strName As String) As Boolean
Dim x As String
On Error Resume Next
x = Range(strName).Name.RefersToRange.Address
If Err.Number = 0 Then CheckMe = True
End Function
cu
Chris
Anzeige
AW: String auf Addresse prüfen
18.07.2022 15:57:31
Daniel
Hi
mal als Workaround für die beschriebenen Fälle:
vergleiche vom Namen .RefersTo mit .RefersToR1C1.
hast du im Namen einen Bezug, wird so wird bei .RefersTo der Name mit A1-Adressen ausgegeben und bei .RefersToR1C1 mit R1C1-Adressen, dh die Formeln des Names sind in beiden Schreibweisen unterschiedlich.
hast du jedoch dem Namen einen festen Wert zugewiesen, dann ist die Formel in beiden Schreibweisen gleich.
also:

If thisworkbooks.Names("deinName").RefersTo = ThisWorkbook.Names("deinName").RefersToR1C1 Then
Msgbox "deinName ist ein Wert"
Else
Msgbox "deinName ist Bezug"
End if
ist zwar nicht 100% sicher, denn du könntest ja auch im Namen per Formel einen Wert mit hilfe von Zellbezügen berechnen, aber echte festwerte kannst du so identifizieren.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige