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

Forumthread: string von rechts durchsuchen

string von rechts durchsuchen
24.04.2007 17:45:00
rechts
hi leute,
ich habe folgendes problem. ich habe zb. folgenden string: "GS1-GSW123 - Beschreibung". Ich möchte jetzt nur das Wort Beschreibung aus dem String herauslösen (hat immer unterschiedliche Länge). Gibt es eine Möglichkeit den String auch von rechts zu durchsuchen bis man ein spezielles zeichen findet. von links geht das ja!
vielleicht kann mir jemand helfen!
vielen dank!
lg peter

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: string von rechts durchsuchen
24.04.2007 17:49:00
rechts
Hallo Peter,
wenn immer nur "Beschreibung" entfernt werden soll:
a = Replace("GS1-GSW123 - Beschreibung","Beschreibung","")
ansonsten gibt es neben InStr() noch InStrRev():
InStr("1212","12") ergibt 1
InStrRev("1212","12") ergibt 3
Gruß Matthias

AW: string von rechts durchsuchen
24.04.2007 18:21:58
rechts
vielen vielen dank!
lg peter

Anzeige
AW: string von rechts durchsuchen
24.04.2007 17:51:26
rechts
Hallo Peter,
versuch es doch mit InStrRev gibt's schon ab Excel 2000 der sucht den String von rechts ab.
Gruß Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

String von rechts durchsuchen in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen String in Excel VBA von rechts zu durchsuchen, kannst du die Funktion InStrRev nutzen. Diese Funktion sucht nach einem bestimmten Zeichen in einem String, beginnend vom Ende des Strings. Hier ist eine einfache Anleitung:

  1. Öffne den Visual Basic for Applications (VBA)-Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).

  3. Schreibe den folgenden Code:

    Sub StringVonRechtsDurchsuchen()
       Dim str As String
       Dim zeichen As String
       Dim position As Long
    
       str = "GS1-GSW123 - Beschreibung"
       zeichen = "-" ' Das Zeichen, nach dem gesucht wird
    
       ' Suche von rechts nach links
       position = InStrRev(str, zeichen)
    
       If position > 0 Then
           MsgBox "Das Wort nach dem Zeichen ist: " & Trim(Right(str, Len(str) - position))
       Else
           MsgBox "Zeichen nicht gefunden."
       End If
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um das Ergebnis zu sehen.


Häufige Fehler und Lösungen

  • Fehler: InStrRev gibt 0 zurück.

    • Lösung: Überprüfe, ob das gesuchte Zeichen im String vorhanden ist. Wenn nicht, wird 0 zurückgegeben.
  • Fehler: Der gesamte String wird angezeigt, anstatt das Wort nach dem Zeichen.

    • Lösung: Stelle sicher, dass du die Funktion Right korrekt verwendest, um nur den Teil des Strings nach dem gefundenen Zeichen auszugeben.

Alternative Methoden

Wenn InStrRev nicht das gewünschte Ergebnis liefert, kannst du auch die Funktion Split verwenden, um den String in Teile zu zerlegen. Hier ist ein Beispiel:

Sub AlternativeMethode()
    Dim str As String
    Dim teile() As String

    str = "GS1-GSW123 - Beschreibung"
    teile = Split(str, "-")

    MsgBox "Das Wort nach dem letzten '-' ist: " & Trim(teile(UBound(teile)))
End Sub

Diese Methode zerlegt den String an jedem Vorkommen des Zeichens und gibt das letzte Element zurück.


Praktische Beispiele

  1. Beispiel mit einer variablen Beschreibung:

    Sub DynamischeStringSuche()
       Dim str As String
       Dim position As Long
    
       str = "GS1-GSW123 - Dynamische Beschreibung"
       position = InStrRev(str, "-")
    
       MsgBox "Der Text nach dem letzten '-' ist: " & Trim(Mid(str, position + 1))
    End Sub
  2. Beispiel für das Suchen eines bestimmten Zeichens:

    Sub ZeichenSuchen()
       Dim str As String
       Dim zeichen As String
       Dim position As Long
    
       str = "Beispieltext - Excel - VBA"
       zeichen = "VBA"
       position = InStrRev(str, zeichen)
    
       If position > 0 Then
           MsgBox "Das Zeichen '" & zeichen & "' wurde gefunden!"
       Else
           MsgBox "Zeichen nicht gefunden."
       End If
    End Sub

Tipps für Profis

  • Verwende Trim, um Leerzeichen zu entfernen, bevor du das Ergebnis anzeigst.
  • Nutze Fehlerbehandlung in deinem VBA-Code, um unerwartete Situationen zu managen.
  • Experimentiere mit Replace in Kombination mit InStrRev, um Teile des Strings zu entfernen.

FAQ: Häufige Fragen

1. Wie kann ich den Text von rechts nach links durchsuchen?
Du kannst InStrRev verwenden, um nach einem Zeichen im String von rechts zu suchen.

2. Gibt es eine Möglichkeit, mehrere Zeichen gleichzeitig zu suchen?
Ja, du könntest eine Schleife verwenden, um InStrRev für jedes Zeichen auszuführen, das du suchen möchtest.

3. Funktioniert das auch in Excel 2019?
Ja, die Verwendung von InStrRev ist in allen modernen Excel-Versionen, einschließlich Excel 2000 und später, verfügbar.

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