Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1888to1892
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

108 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige