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

Forumthread: Instr-Funktion unabhängig von Gross- und Kleinsch

Instr-Funktion unabhängig von Gross- und Kleinsch
19.10.2006 02:09:46
Gross-
Hallo
wie kann ich in VBA die Instr- Funktion so nutzen, daß sie unabhängig von der Gross- und Kleinschriebung funktioniert, daß heißt, daß Ergebnis von
instr("Hallo";"L")
sollte 3 sein. Wie bekomme ich daß mit INSTR hin? das angelichen über GROSS oder KLEIN als Worksheetfunction scheint ja nicht möglich zu sein. Gruß, Daniel
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
...weil es UCase und LCase gibt! Gruß owT
19.10.2006 02:13:51
Luc:-?
:-?
AW: ...weil es UCase und LCase gibt! Gruß owT
19.10.2006 02:37:08
Daniel
Danke
Wenn mann die Funktion GROSS bzw KLEIN als Excelformel eingibt und mit selection.forumla abfragt, kommt halt UPPER und LOWER raus. Normalerweise lässt sich diese Formel dann auch in VBA verwenden.
Irgendwie fehlt MS hier etwas die konsequenz.
Gruß, Daniel
AW: ...weil es UCase und LCase gibt! Gruß owT
19.10.2006 06:33:52
Gerd
Hallo Daniel,
da ich wenig mit Zellenformeln mache, habe ich dich vielleicht nicht ganz verstanden.
Aber wenn in VBA die Schreibweise "vorne" u. "hinten" angepasst ist,
kommt die von Dir erwartete erste Posistion des Suchzeichens im String als Ergebnis raus.
MsgBox InStr(1, UCase("Hallo"), UCase("l"), 0)
Gruß
Gerd
Anzeige
AW: ...weil es UCase und LCase gibt! Gruß owT
19.10.2006 10:05:35
Daniel
Hallo
im Prinzip ist es so:
wenn ich einen (englischen) VBA-Befehl nicht kenne, aber weiß, wie die entsprechende deutsche Excel-Formel dazu aussieht, schreibe ich die Formel in eine Zelle und bekomme mit ZELLE.FORMULA die englische Excel-Schreibweise die Funktion, den ich dann in VBA über APPLICATION.WORKSHEETFUNCTION auch so verwenden kann.
Das trifft für die gängigen Funktionen zu (Zählenwenn = countif, vergleich = match, Sverweis = vlookup), aber gerade nicht für diese Text-Funktionen, da die entsprechenden Excel-Formeln (UPPER, LOWER) nicht als Worksheetfunctions implementiert sind.
Daher stand ich zu dieser späten Stunde etwas auf dem Schlauch.
Gruß, Daniel
Anzeige
In VBA fehlen alle WsFcts, die in VB(A) schon...
20.10.2006 03:43:10
Luc:-?
...als Fkt existier(t)en, Daniel!
Übrigens, seit wann ist MS 100%ig konsequent. Da kocht doch nicht nur Einer!
Gruß Luc :-?
;
Anzeige
Anzeige

Infobox / Tutorial

Instr-Funktion in VBA: Groß- und Kleinschreibung ignorieren


Schritt-für-Schritt-Anleitung

Um die InStr-Funktion in VBA so zu nutzen, dass sie die Groß- und Kleinschreibung ignoriert, kannst Du die Zeichenfolgen zuerst mit UCase oder LCase in eine einheitliche Schreibweise umwandeln. Hier ist, wie Du es machst:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf VBAProject (DeineMappe) > Einfügen > Modul.

  3. Schreibe den folgenden Code:

    Sub Beispiel_InStr()
       Dim SuchString As String
       Dim SuchZeichen As String
       Dim Ergebnis As Integer
    
       SuchString = "Hallo"
       SuchZeichen = "l"
    
       ' Groß- und Kleinschreibung ignorieren
       Ergebnis = InStr(1, UCase(SuchString), UCase(SuchZeichen))
    
       MsgBox "Das Suchzeichen " & SuchZeichen & " befindet sich an Position: " & Ergebnis
    End Sub
  4. Führe das Makro aus: Drücke F5, um das Makro auszuführen und das Ergebnis zu sehen.


Häufige Fehler und Lösungen

  • Fehler: Ergebnis ist 0

    • Lösung: Stelle sicher, dass Du UCase oder LCase verwendest, um beide Strings in die gleiche Schreibweise zu bringen. Wenn Du beispielsweise nach "l" suchst, sollte sowohl der Suchstring als auch der Suchbegriff in Großbuchstaben umgewandelt werden.
  • Fehler: UCase oder LCase nicht erkannt

    • Lösung: Überprüfe, ob Du in einem VBA-Modul arbeitest. Diese Funktionen sind spezifisch für VBA und benötigen den richtigen Kontext.

Alternative Methoden

Eine alternative Methode, um die Groß- und Kleinschreibung zu ignorieren, ist die Verwendung von Replace, um den Suchstring und das Suchzeichen vor dem InStr-Aufruf zu vereinheitlichen. Beispiel:

Ergebnis = InStr(1, Replace(SuchString, "l", "L"), "L")

Diese Methode kann allerdings weniger flexibel sein, wenn Du mehrere Zeichen in verschiedenen Schreibweisen suchen möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen können:

  1. Suche nach mehreren Zeichen:

    Sub Mehrere_Zeichen()
       Dim text As String
       Dim ergebnis As Integer
    
       text = "Das ist ein Test."
       ergebnis = InStr(1, UCase(text), UCase("test"))
    
       MsgBox "Das Wort 'test' beginnt an Position: " & ergebnis
    End Sub
  2. Verwendung in einer Schleife:

    Sub Schleife()
       Dim arr As Variant
       Dim i As Integer
       arr = Array("Hallo", "Welt", "VBA", "Programmierer")
    
       For i = LBound(arr) To UBound(arr)
           If InStr(1, UCase(arr(i)), UCase("vba")) > 0 Then
               MsgBox "VBA gefunden in: " & arr(i)
           End If
       Next i
    End Sub

Tipps für Profis

  • Nutze InStrRev, falls Du die Suche von hinten nach vorne durchführen möchtest. Dies ist besonders nützlich, wenn Du das letzte Vorkommen eines Zeichens finden möchtest.

  • Experimentiere mit Option Compare Text am Anfang Deines Moduls. Dies bewirkt, dass alle String-Vergleiche standardmäßig die Groß- und Kleinschreibung ignorieren.


FAQ: Häufige Fragen

1. Frage
Wie kann ich die InStr-Funktion in Excel verwenden?
Antwort: In Excel gibt es die FINDEN-Funktion, die jedoch die Groß- und Kleinschreibung beachtet. Um sie unabhängig von der Groß- und Kleinschreibung zu verwenden, kannst Du SUCHEN verwenden.

2. Frage
Gibt es eine Möglichkeit, die Funktionen GROSS und KLEIN in VBA zu verwenden?
Antwort: Ja, Du kannst UCase und LCase in VBA verwenden, um Groß- und Kleinschreibung bei Strings zu steuern.

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