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

Forumthread: Teilstring aus String entfernen

Teilstring aus String entfernen
skaddy
Hallo zusammen
Folgendes Problem: Ich habe einen String in einer Excel Zelle, den ich auf ein weiteres Tabellenblat kopieren möchte, jedoch wenn in dem String ein "$" als erstes Zeichen steht folgt an unbestimmerter Stelle ein ";" dann wieder Text, und dann wieder ein ";" und dann wieder Text. Die verschiedenen Texte in den Zellen sind unterschiedlich lang. Hier ein Beispiel: "$Hallo ;Das hier muss ich löschen; Welt"
Meine Frage nun: Wie kann ich das erste Zeichen auf "$" prüfen und dann weiter den Teilstring zwischen ; und ; herauslöschen? So Schleifen und kopieren in VBA bekomm ich hin, nur das herausschneiden des Teilstrings weiss ich nicht wie ich das angehen könnte, im Archiv habe ich so nichts gefunden...
Bin um jeden Tipp oder Codeschnipsel dankbar...
Besten Dank für eure Hilfe
skaddy
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Vbscript.Regexp
27.02.2010 21:32:54
ransi
HAllo
Hier mal ein erster Versuch:
Diesen Code in ein Modul:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Function Test(zelle)
Dim Regex
If Left(zelle.Text, 1) = "$" Then
    Set Regex = CreateObject("Vbscript.Regexp")
    With Regex
        .Pattern = ";.+;"
        Test = .Replace(zelle.Text, "")
    End With
End If
End Function


Der Aufruf geht dann so:
Tabelle1

 AB
1$Hallo ;Das hier muss ich löschen; Welt$Hallo  Welt

Formeln der Tabelle
ZelleFormel
B1=test(A1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
ransi
Anzeige
AW: Vbscript.Regexp
27.02.2010 21:56:24
skaddy
Hallo ransi
danke für die schnelle Antwort
Habs versucht, bekommen ein "Object not found" bei Set Regex
Was muss ich da noch einbinden?
Besten Dank und Gruss
skaddy
AW: Teilstring aus String entfernen
27.02.2010 21:44:03
Gerd
Hallo skaddy,
teste mal.
strText="$Hallo ;Das hier muss ich löschen; Welt"
if Left$(strText, 1)= "$" then
strLöschen=Split("$Hallo ;Das hier muss ich löschen; Welt", ";")(1)
strText= Replace(strText, strLöschen,"")
End If
Gruß Gerd
Anzeige
AW: Teilstring aus String entfernen
27.02.2010 22:00:21
skaddy
Hallo Gerd
Besten Dank, klappt schon ganz gut.
Das Ergebnis sieht dann so aus '$Hallo ;; Welt'. Wie kann ich nun noch das $, ein Leerzeichen und die ; entfernen so dass ich als Ergebnis 'Hallo Welt' bekomme?
Danke und Gruss
skaddy
per Formel: siehe oben
27.02.2010 22:11:45
WF
war doppelt - hab ich nicht gesehen.
WF
AW: Teilstring aus String entfernen
27.02.2010 22:28:22
Gerd
Hallo skaddy,
für dein Muster mit "Hallo":
strText= Replace(Mid$(strText,2), ";" & strLöschen & ";","")
Gruß Gerd
Anzeige
AW: Teilstring aus String entfernen
27.02.2010 22:49:01
skaddy
Hallo Gerd
Super!
Nur noch eine Frage, nun sind noch zwei Leerzeichen zwischen Hallo und Welt, also "Hallo Welt", wie bekomme ich da noch eins raus das nur noch "Hallo Welt" drin steht?
Hab das versucht in deinem Beispiel zu realisiern, geht aber irgendwie nicht... hmm
Merci
skaddy
Anzeige
AW: Teilstring aus String entfernen
27.02.2010 23:09:21
Gerd
Hallo skaddy,
meinst Du so?
strText= Replace(Replace(Mid$(strText,2), ";" & strLöschen & ";",""), " ", " ")
Gruß Gerd
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Teilstring aus String entfernen in Excel


Schritt-für-Schritt-Anleitung

Um ein Teilstring aus einem String in Excel zu entfernen, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Option Explicit
    
    Public Function Test(zelle As Range) As String
       Dim Regex As Object
       If Left(zelle.Text, 1) = "$" Then
           Set Regex = CreateObject("Vbscript.Regexp")
           With Regex
               .Pattern = ";.+;"
               Test = .Replace(zelle.Text, "")
           End With
       End If
    End Function
  4. Verwende die Funktion in Excel: Gehe zurück zu Excel und verwende die Funktion in einer Zelle, z.B. =Test(A1).


Häufige Fehler und Lösungen

  • Fehler: "Object not found" bei Set Regex

    • Lösung: Stelle sicher, dass du die VBA-Referenz für Microsoft VBScript Regular Expressions aktiviert hast. Gehe zu Extras > Verweise im VBA-Editor und aktiviere die entsprechende Option.
  • Problem mit Leerzeichen

    • Lösung: Nutze die Trim-Funktion, um überflüssige Leerzeichen zu entfernen. Beispiel: Test = Trim(.Replace(zelle.Text, "")).

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch einfache Excel-Formeln nutzen:

  • Erstes Zeichen löschen: Verwende die Formel =RECHTS(A1;LÄNGE(A1)-1) um das erste Zeichen zu entfernen.
  • Text zwischen Semikolons entfernen: Kombiniere die FINDEN und LINKS Funktionen, um Teile eines Strings zu extrahieren.

Praktische Beispiele

Angenommen, du hast den folgenden Text in Zelle A1: "$Hallo ;Das hier muss ich löschen; Welt".

  • Um das erste Zeichen und den Teilstring zu entfernen, kannst du die VBA-Funktion wie folgt aufrufen:

    =Test(A1)
  • Das Ergebnis wird dann "$ ;; Welt" sein. Um das $ und die überflüssigen Semikolons zu entfernen, kann folgende Zeile hinzugefügt werden:

    strText = Replace(Replace(Mid$(strText, 2), ";" & strLöschen & ";", ""), "  ", " ")

Tipps für Profis

  • Verwende die Replace-Funktion effizient, um mehrere Zeichen gleichzeitig zu entfernen. Du kannst mehrere Replace-Aufrufe schachteln.

  • Nutze RegEx für komplexere Muster, um spezifische Zeichen oder Teilstrings dynamisch zu entfernen.

  • Für häufige Aufgaben kannst du benutzerdefinierte Funktionen erstellen, die du mehrmals in verschiedenen Projekten verwenden kannst.


FAQ: Häufige Fragen

1. Wie kann ich das erste Zeichen in Excel löschen? Um das erste Zeichen zu entfernen, kannst du die Funktion =RECHTS(A1;LÄNGE(A1)-1) verwenden.

2. Wie entferne ich mehrere Zeichen aus einem String? Verwende die Replace-Funktion in VBA, um gezielt Zeichen oder Teilstrings zu ersetzen oder zu löschen. Ein Beispiel wäre strText = Replace(strText, "Zeichen", "").

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige