Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: InStr Groß- und Kleinschreibung

InStr Groß- und Kleinschreibung
30.05.2020 10:17:12
Sergej
Hallo Leute,
wie kann ich bitte hier im String "BOGEN" die Schreibweise ignorieren?
Sprich das es für alle Schreibvarianten (ohne Berücksichtigung von Groß- und Kleinschreibung) gilt
...
If InStr(oPh.GetDisplayString, "DXF-Name") > 0 And InStr(oPh.GetDisplayString, "BOGEN") > 0 Then
...
Beste Grüße,
Sergej
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
schau Dir mal UCASE und LCASE an ... owT
30.05.2020 10:19:11
Matthias
UCase und LCase sind besonders nützlich, ...
30.05.2020 20:58:15
Luc:?
…Matti & all,
wenn man, Existenz von Groß- und KleinBuchstaben vorausgesetzt, Buchstaben von anderen Zeichen unterscheiden will/muss (ggf ohne ẞß → vgl unten). Das fktioniert sogar für eher exotische bzw historische Buchstaben aus anderen Alfabeten. Die entsprd XlFktt sind da wesentlich eingeschränkter.
Gruß + FroPf, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: InStr Groß- und Kleinschreibung
30.05.2020 10:23:47
Martin
Hallo Sergej,
wie Matthias bereits geschrieben hat:
Entweder:

InStr(UCase(oPh.GetDisplayString), "BOGEN")
ODER:

InStr(LCase(oPh.GetDisplayString), "bogen")
Viele Grüße
Martin
AW: InStr Groß- und Kleinschreibung
30.05.2020 10:46:33
Sergej
Vielen Dank Matthias und Martin.
Beste Grüße,
Sergej
Anzeige
AW: InStr Groß- und Kleinschreibung
30.05.2020 10:46:07
Luschi
Hallo Sergej,
ein Blick in die Vba-Online-Hilfe hätte die Erleuchtung gebracht:
MsgBox InStr(1, "xxx BoGeNxxx", "bogen", vbTextCompare)
Gruß von Luschi
aus klein-Paris
...die Online-Hilfe kann aber auch verwirrend sein
30.05.2020 11:45:06
Martin
Hallo Luschi,
deine Lösung ist ohne Frage der beste Lösungsvorschlag.
Trotzdem möchte ich die Online-Hilfe zitieren:
"vbTextCompare 1 Führt einen Textvergleich aus."
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/instr-function
Man muss diese Aussage schon dreimal lesen, bis man den Inhalt versteht. Und das Beispiel mit dem Buchstaben "p" / "P" ist auch eher unglücklich gewählt. Bei der Zeile
SearchChar = "P"
in einer tollen serifenlosen Microsoft-Schriftart habe ich auch eine Weile gebraucht um zu erkennen, ob es sich um ein "p" oder "P" handelt.
Nur "ein" Blick in die Vba-Online-Hilfe hätte eher keine Erleuchtung gebracht ;-)
Viele Grüße
Martin
Anzeige
Anmerkung zu Schrift und Code in der Hilfe...
30.05.2020 13:07:15
EtoPHG
Hallo Martin,
Für Darstellung von ist es üblich eine nichtproportionale Schriftart zu wählen.
Ob mit oder ohne Serifen spielt dabei eine untergeordnete Rolle, denn
ob die Unterscheidung zwischen serifenlosen "P" + "p" und mit Serifen "P" + "p" besser ist, wage ich zu bezweifeln.
Zudem finde ich das Codebeispiel gut, weil es den Unterschied zwischen einem binären und eine textbasiertem Vergleich schön darstellt. "P" oder "p", das ist wirklich Deine Frage? ;-)
Gruess Hansueli
Am Stirnhaar lasst den Augenblick uns fassen. W. Shakespeare
Anzeige
AW: Anmerkung zu Schrift und Code in der Hilfe...
30.05.2020 14:54:29
Martin
Hallo Hansueli,
ich habe keine Frage gestellt, sondern meine Ansicht zur Hilfe erläutert. Es war nicht meine Absicht "kleinkariert" zu wirken, aber ich würde mein eigenes VBA-Level schon als fortgeschritten bis Profi einschätzen und habe die Replace-Funktion selbst nicht ideal angewendet. Bei einem Fragesteller mit dem Level "VBA nur mit Recorder" fand ich die Antwort "ein Blick in die Vba-Online-Hilfe hätte die Erleuchtung gebracht." eher unglücklich gewählt.
Und weiterhin vertrete ich die Ansicht, dass sich die Mehrheit aller Buchstaben des Alphabets in ihrer Darstellung von Groß- und Kleinschreibung wesentlich deutlicher unterscheiden als "p" und "P", so zum Beispiel: a/A, b/B, D/d, E/e, F/f, G/g, H/h, i/I, j/J usw.
Mit der Schrift hier im Forum ist der Unterschied von "p" und "P" schon deutlich besser erkennbar als in der Online-Hilfe von Microsoft.
Daher finde ich einfach die verwendeten Buchstaben für das gewählte Beispiel nachteilig.
Viele Grüße
Martin
Anzeige
AW: InStr Groß- und Kleinschreibung
30.05.2020 12:33:31
volti
Hallo zusammen,
der Schalter Option Compare Text bringt auch den gewünschten Erfolg.
viele Grüße
Karl-Heinz
AW: InStr Groß- und Kleinschreibung
30.05.2020 14:56:31
Martin
Hallo Karl-Heinz,
das ist ein sehr guter Hinweis. Die verschiedenen Lösungswege finde ich hier im Forum immer wieder sehr interessant!
Viele Grüße
Martin
Anzeige
...steht genau so in der Hilfe ;-) (owT)
30.05.2020 19:22:41
EtoPHG

InStr scheint genauso wie LCase & UCase ...
30.05.2020 20:50:25
Luc:?
…bereits alle zum jeweiligen ZeitPkt der xlVBA-Version vorhandenen GB/KB zu berücksichtigen, Luschi,
was bei StrConvert ebenso wie bei den Xl-Fktt GROSS (Upper), GROSS2 (Proper) und KLEIN (Lower) nicht der Fall zu sein scheint. Natürlich fällt in Xl14/2010 darunter noch nicht das große , denn das wurde erst 2017 verbindlich. Erhebt sich die Frage, ob das in neueren xlVBA-Versionen inzwischen berücksichtigt wurde…
Gruß + FroPf, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

InStr Groß- und Kleinschreibung ignorieren in VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA die Groß- und Kleinschreibung bei der Verwendung der InStr-Funktion zu ignorieren, kannst du folgende Schritte befolgen:

  1. String vorbereiten: Stelle sicher, dass du den String hast, in dem du nach einer bestimmten Textstelle suchen möchtest.
  2. UCase oder LCase verwenden: Du kannst entweder UCase oder LCase verwenden, um die Groß- und Kleinschreibung zu vereinheitlichen. Beispiel:
    If InStr(UCase(oPh.GetDisplayString), "BOGEN") > 0 Then

    oder

    If InStr(LCase(oPh.GetDisplayString), "bogen") > 0 Then
  3. vbTextCompare nutzen: Eine weitere Möglichkeit ist die Verwendung des vbTextCompare-Arguments in der InStr-Funktion:
    MsgBox InStr(1, "xxx BoGeNxxx", "bogen", vbTextCompare)

Häufige Fehler und Lösungen

  • Fehler 1: InStr gibt 0 zurück, obwohl der Text vorhanden ist.

    • Lösung: Stelle sicher, dass du entweder UCase oder LCase verwendest oder vbTextCompare in deiner InStr-Abfrage angibst.
  • Fehler 2: Syntaxfehler beim Schreiben der Funktion.

    • Lösung: Überprüfe die Schreibweise und die Argumente der Funktion. Achte darauf, dass du die richtigen Anführungszeichen verwendest.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, um die Groß- und Kleinschreibung in Excel VBA zu ignorieren:

  1. Option Compare Text: Wenn du diese Anweisung am Anfang deines Moduls hinzufügst, wird die gesamte Datei so konfiguriert, dass sie Groß- und Kleinschreibung ignoriert.

    Option Compare Text
  2. Zugriff auf Access VBA: Die InStr-Funktion in Access VBA funktioniert ebenfalls ähnlich und unterstützt vbTextCompare.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von InStr, um Groß- und Kleinschreibung zu ignorieren:

  1. Beispiel 1: Suche nach einer E-Mail-Adresse, ohne die Groß- und Kleinschreibung zu beachten:

    Dim email As String
    email = "Beispiel@domain.com"
    If InStr(1, email, "BEISPIEL@DOMAIN.COM", vbTextCompare) > 0 Then
       MsgBox "E-Mail gefunden!"
    End If
  2. Beispiel 2: Suche in einer Liste von Namen:

    Dim names As String
    names = "Max, Moritz, Bogen"
    If InStr(1, names, "bogen", vbTextCompare) > 0 Then
       MsgBox "Bogen ist in der Liste!"
    End If

Tipps für Profis

  • Nutze die InStr-Funktion in Kombination mit If-Abfragen, um komplexe Suchkriterien zu erstellen.
  • Teste immer, ob die eingegebenen Werte in Kleinbuchstaben oder Großbuchstaben vorliegen, um Missverständnisse zu vermeiden.
  • Überlege, ob die Verwendung von Option Compare Text für dein gesamtes Modul sinnvoll ist, um die Lesbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen UCase und LCase? UCase konvertiert einen String in Großbuchstaben, während LCase ihn in Kleinbuchstaben konvertiert.

2. Wie kann ich die InStr-Funktion in Access VBA verwenden? Die Verwendung ist ähnlich wie in Excel VBA. Du kannst InStr mit den gleichen Argumenten verwenden, um die Groß- und Kleinschreibung zu ignorieren.

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