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

Wort aus String herausschneiden

Forumthread: Wort aus String herausschneiden

Wort aus String herausschneiden
05.08.2016 20:06:12
Matthias
Hallo zusammen,
ich hätte da eine kleine Frage, da ich zu blöd bin mit VBA umzugehen:
Wie schaffe ich aus einem String der so aussieht:
Text (Name - Ort)
nur den Namen und Ort in jeweils eine Variable zu schreiben?
Hier soll bspw. in einer Variable später nur "Müller" stehen:
Aufgabe 1 erledigt (Müller - Berlin)
Text, Name und Stadt kann immer unterschiedlich lang sein, daher kann man sich nur an den Zeichen orientieren.
Mit Left und Right komme ich ganz gut klar aber mittendrin ein Wort herausschneiden und sich dabei an den Zeichen links und rechts vom Wort zu orientieren überfordert mich.
Bitte helft mir! Danke!
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wort aus String herausschneiden
05.08.2016 20:21:18
Daniel
Hi
da gibst verschiedene Methoden.
die klassische wäre, die Position von "(" und "-") zu ermitteln und dann mit der MID-Funktion den Teiltext auschneiden:
Text = "Aufgabe 1 erledigt (Müller - Berlin)"
Pos1 = Instr(Text, "(") + 1
Pos2 = Instr(Text, "-")
Name = Trim (Mid(Text, Pos1, Pos2 - Pos1))
eine andere Möglichkeit wäre, die Trennzeichen (, - und ) zu vereinheitlichen, damit du den Text in ein Array zerlegen kannst. Im array kannst du dann die Teiltexte über die Indexnummer auswählen:
Text = "Aufgabe 1 erledigt (Müller - Berlin)"
Text = Replace(Text, "(", "-")
Text = Replace(Text, ")", "-")
TeilTexte = Split(Text, "-")
Name = TeilTexte(1)
Ort = TeilTexte(2)
Gruß Daniel
Anzeige
AW: Wort aus String herausschneiden
05.08.2016 21:00:15
Matthias
Daniel! Der Wahnsinn!! Vielen Dank für deine Mühe!
Danke Danke Danke!
;
Anzeige
Anzeige

Infobox / Tutorial

Wort aus String herausschneiden in Excel


Schritt-für-Schritt-Anleitung

Um aus einem Excel-String wie "Aufgabe 1 erledigt (Müller - Berlin)" den Namen und den Ort herausschneiden zu können, kannst du die folgende VBA-Methode verwenden. Diese Methode nutzt die Mid-Funktion, um die gewünschten Teile des Strings zu extrahieren:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Rechtsklicke auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Gib den folgenden Code ein:

    Sub WortHerausschneiden()
        Dim Text As String
        Dim Pos1 As Integer
        Dim Pos2 As Integer
        Dim Name As String
        Dim Ort As String
    
        Text = "Aufgabe 1 erledigt (Müller - Berlin)"
        Pos1 = InStr(Text, "(") + 1
        Pos2 = InStr(Text, "-")
    
        Name = Trim(Mid(Text, Pos1, Pos2 - Pos1))
    
        ' Ort ermitteln
        Pos1 = Pos2 + 1
        Pos2 = InStr(Text, ")")
        Ort = Trim(Mid(Text, Pos1, Pos2 - Pos1))
    
        MsgBox "Name: " & Name & vbCrLf & "Ort: " & Ort
    End Sub
  4. Führe das Skript aus: Drücke F5, um die Subroutine auszuführen.

Jetzt zeigt dir ein Dialogfeld den Namen und den Ort an.


Häufige Fehler und Lösungen

  • Fehler: "Typenübereinstimmung": Überprüfe, ob der String korrekt initialisiert wurde. Der Fehler tritt auf, wenn der Text nicht richtig zugewiesen ist.
  • Fehler: "Subscript out of range": Achte darauf, dass die Indizes im Array korrekt sind. Wenn der Text nicht das erwartete Format hat, kann dies zu einem Fehler führen.

Alternative Methoden

Eine andere Möglichkeit, die du nutzen kannst, ist die Verwendung der Split-Funktion. Hierbei werden die Trennzeichen vereinheitlicht, um den Text in ein Array zu zerlegen:

Sub AlternativeMethode()
    Dim Text As String
    Dim TeilTexte() As String
    Text = "Aufgabe 1 erledigt (Müller - Berlin)"
    Text = Replace(Text, "(", "-")
    Text = Replace(Text, ")", "-")
    TeilTexte = Split(Text, "-")

    Dim Name As String
    Dim Ort As String
    Name = Trim(TeilTexte(1))
    Ort = Trim(TeilTexte(2))

    MsgBox "Name: " & Name & vbCrLf & "Ort: " & Ort
End Sub

Praktische Beispiele

Hier sind einige Beispiele, wie du die oben genannten Methoden auf unterschiedliche Strings anwenden kannst:

  • Beispiel 1: "Projekt (Müller - Hamburg)"
  • Beispiel 2: "Meeting (Schmidt - München)"
  • Beispiel 3: "Bericht (Meier - Köln)"

Du kannst einfach den Text in den Code oben ändern und die Subroutine erneut ausführen.


Tipps für Profis

  • Nutze die Trim-Funktion, um sicherzustellen, dass keine überflüssigen Leerzeichen in den extrahierten Werten enthalten sind.
  • Bei komplexeren Strings kannst du reguläre Ausdrücke (RegEx) verwenden, um flexiblere Muster zu erkennen und zu extrahieren.
  • Halte deine VBA-Prozeduren modular, indem du Funktionen für wiederkehrende Aufgaben erstellst.

FAQ: Häufige Fragen

1. Wie kann ich diesen VBA-Code in einer Excel-Datei speichern?
Du kannst den Code einfach im VBA-Editor unter "Module" speichern. Achte darauf, die Datei als 'Excel-Arbeitsmappe mit Makros' (.xlsm) zu speichern.

2. Funktioniert dieser Code in jeder Excel-Version?
Ja, der Code sollte in allen modernen Versionen von Excel funktionieren, die VBA unterstützen, einschließlich Excel 2010, 2013, 2016, 2019 und 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige