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

Forumthread: Zeichen aus String entfernen

Zeichen aus String entfernen
31.08.2017 23:57:39
snewi
Ich kopiere mir aus einer Spalte mehrere Strings in eine andere Spalte!
Sheets("Tabelle1").Columns("D:D").Copy
Sheets("Tabelle2").Columns("H:H").PasteSpecial xlPasteValues
Jetzt steht in jeder Zeile der Spalte immer ein "... mehr" mit im Text! Diesen möchte ich aber nicht mitkopieren! es steht immer ganz am Ende des Strings!
Wie funktioniert das?
Gruss
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeichen aus String entfernen
01.09.2017 00:05:07
Joni
Hi,
führe am Ende für die Spalte H ein Suchen nach "... mehr" / Ersetzen durch "" aus.
Schon erledigt.
Gruß Joni
AW: Zeichen aus String entfernen
01.09.2017 00:31:22
Piet
Hallo snewi
du hast ja die seltsamsen Effekte. Hört sich ein bisschen wie "Poltergeist" an. Verhexter PC (Harry Potter)
Nein im Ernst, ich habe bisher noch nie gehört das Excel beim Kopieren noch einen Text hinten dranhaengt!
Kannst du bitte eine kleine Beispieldatei mit 10-15 anonymen Daten und deinem Original Code erstellen.
Das seltsame Phaenomen würde ich mir gerne mal an einem echten beispiel ansehen!!!
mfg Piet
Anzeige
Das hast du wohl falsch verstanden, ...
01.09.2017 01:27:51
Luc:-?
…Piet;
die ursprüngliche Quelle dieser Texte wdn wohl InternetSeiten von Medien-OnLine-Portalen sein. Dort sind solche Textkürzungen mit Link zum vollständigen unter mehr üblich. Evtl könnten das auch keine 3 Punkte sein, sondern das ASCII-Zeichen 133 (…).
🙈 🙉 🙊 🐵 Morrn, Luc :-?
Besser informiert mit …
Anzeige
Und das hängt sicher mit dem Vorgänger ...
01.09.2017 01:44:16
Luc:-?
…zusammen:
Daten per VBA aus IE auslesen
Erinnerst du dich‽
Luc :-?
AW: Und das hängt sicher mit dem Vorgänger ...
01.09.2017 08:41:39
snewi
Ja genau das ist es! Luc ich lese Daten aus und da ist das eben mit dabei! Wie bekomme ich das beim Kopiervorgang weg?
Gruss
AW: Und das hängt sicher mit dem Vorgänger ...
01.09.2017 09:00:48
UweD
hallo
so?
Sub ddg()
    Dim Wegdamit As String
    
    Wegdamit = "... mehr"
    
    With Sheets("Tabelle2").Columns("H:H")
        .Value = Sheets("Tabelle1").Columns("D:D").Value
        
        .Replace What:="... mehr", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByColumns
    End With

End Sub

LG UweD
Anzeige
AW: Und das hängt sicher mit dem Vorgänger ...
01.09.2017 09:03:29
UweD
natürlich mit der Variable...
        .Replace What:=Wegdamit, Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns

AW: Danke, habs verstanden
01.09.2017 12:39:19
Piet
Hallo
und Danke an Luc und snewi, bin nach meinem Beitrag schlafen gegangen und sehe erst jetzt eure Antwort.
Der Gedanke ist mir garnicht gekommen, war vielleicht schon zu müde .... (muss mehr auf Details achten)
mfg Piet
Anzeige
AW: Und das hängt sicher mit dem Vorgänger ...
01.09.2017 13:40:28
snewi
Ich übernehme die Werte mit dem ...mehr mit folgendem Coder aus der ersten Tabelle und packe sie in die zweite!:

Sub Copy_Description_Veranstalter()
Dim wks1 As Object
Dim wks2 As Object
Dim cl As Range
Set wks1 = Sheets("Tabelle1")
Set wks2 = Sheets("Tabelle2")
For Each cl In wks1.Range("C2:C" & wks1.Range("C2").End(xlDown).Row).Cells
wks2.Range("G" & cl.Row) = cl & Chr(10) & cl.Offset(0, 2)
Next
End Sub
Hier müsste ich das dann aufrufen? oder wie könnte ich das da einbinden! Oder erst kopieren und hinterher nochmal drüberlaufen lassen`?
Gruss
Anzeige
AW: Und das hängt sicher mit dem Vorgänger ...
01.09.2017 14:04:50
UweD
Hi
wenn du es unbedingt mit einer Schleife Zellenweise machen möchtest, dann ggf. so (ungeprüft)
Sub Copy_Description_Veranstalter()
    Dim wks1 As Object
    Dim wks2 As Object
    Dim cl As Range
    
    Set wks1 = Sheets("Tabelle1")
    Set wks2 = Sheets("Tabelle2")
        
        
    For Each cl In wks1.Range("C2:C" & wks1.Range("C2").End(xlDown).Row).Cells
        wks2.Range("G" & cl.Row) = _
            Replace(cl & Chr(10) & cl.Offset(0, 2), "... mehr", "")
    Next
       
End Sub
LG UweD
Anzeige
AW: Und das hängt sicher mit dem Vorgänger ...
01.09.2017 14:28:21
snewi
Es funktioniert so!
wie hätte denn die andere Variante ausgesehen und wäre diese deiner Meinung besser ?
Gruss
AW: Und das hängt sicher mit dem Vorgänger ...
01.09.2017 15:18:44
UweD
Hallo nochmal
erst wird eine Formel in den gesamten Bereich geschrieben, dann wird das in einen Wert gewechselt.
Sub Copy_Description_Veranstalter()
    Dim wks1 As Object
    Dim wks2 As Object
    Dim cl As Range, LR As Double
    
    Set wks1 = Sheets("Tabelle1")
    Set wks2 = Sheets("Tabelle2")
        
        
    LR = wks1.Range("C2").End(xlDown).Row
    With wks2.Range("G2:G" & LR)
        'Formel in gesamten Bereich 
        '=Tabelle1!C2&ZEICHEN(10)&WECHSELN(Tabelle1!E2;"... mehr";"") 
        
        
        .FormulaR1C1 = "=" & _
            wks1.Name & "!RC[-4]&CHAR(10)&SUBSTITUTE(" & _
            wks1.Name & "!RC[-2],""... mehr"","""")"
        .Value = .Value 'Formel in Wert ändern 
    End With
       
End Sub
LG UweD
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeichen aus String entfernen in Excel


Schritt-für-Schritt-Anleitung

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

  1. Öffne das Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub Copy_And_Remove_Text()
        Dim Wegdamit As String
        Wegdamit = "... mehr"
    
        With Sheets("Tabelle2").Columns("H:H")
            .Value = Sheets("Tabelle1").Columns("D:D").Value
            .Replace What:=Wegdamit, Replacement:="", LookAt:=xlPart, SearchOrder:=xlByColumns
        End With
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus (über ALT + F8).

  5. Deine Daten in Spalte H sollten jetzt ohne das Zeichen "... mehr" sein.


Häufige Fehler und Lösungen

  • Fehler: Der Code funktioniert nicht.

    • Lösung: Stelle sicher, dass die Namen der Arbeitsblätter korrekt sind. Wenn Du z.B. "Tabelle1" oder "Tabelle2" anders benannt hast, passe den Code entsprechend an.
  • Fehler: Die Zeichen werden nicht entfernt.

    • Lösung: Überprüfe den Text auf Leerzeichen oder andere unsichtbare Zeichen, die möglicherweise das Ersetzen verhindern. Nutze die Funktion Trim() in VBA, um diese zu entfernen.

Alternative Methoden

Falls Du VBA nicht verwenden möchtest, kannst Du auch die Suchen/Ersetzen-Funktion in Excel verwenden:

  1. Markiere die Spalte, aus der Du die Zeichen entfernen möchtest.
  2. Gehe zu Start > Suchen & Auswählen > Ersetzen.
  3. Gib in das Feld „Suchen nach“ den Text "... mehr" ein und lasse das Feld „Ersetzen durch“ leer.
  4. Klicke auf „Alle ersetzen“.

Diese Methode ist einfach und erfordert keine Programmierkenntnisse.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Entfernen von Zeichen aus Strings:

  • Sonderzeichen entfernen: Wenn Du beispielsweise alle Sonderzeichen aus einem String entfernen möchtest, kannst Du folgenden VBA-Code nutzen:

    Function RemoveSpecialChars(ByVal str As String) As String
        Dim i As Integer
        Dim result As String
        result = ""
    
        For i = 1 To Len(str)
            If Mid(str, i, 1) Like "[A-Za-z0-9 ]" Then
                result = result & Mid(str, i, 1)
            End If
        Next i
    
        RemoveSpecialChars = result
    End Function
  • Zeichen in einer Schleife entfernen: Wenn Du mehrere Zeilen durchgehen möchtest, kannst Du eine Schleife verwenden:

    Sub RemoveTextInLoop()
        Dim cl As Range
        For Each cl In Sheets("Tabelle1").Range("A1:A10")
            cl.Value = Replace(cl.Value, "... mehr", "")
        Next cl
    End Sub

Tipps für Profis

  • Verwende Trim() in Kombination mit Replace(), um sicherzustellen, dass keine unerwünschten Leerzeichen in den Strings bleiben.
  • Speichere eine Sicherungskopie Deiner Datei, bevor Du Massenänderungen vornimmst.
  • Teste den Code zuerst an einer kleinen Datenmenge, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich mehrere verschiedene Zeichen gleichzeitig entfernen? Du kannst die Replace-Funktion mehrmals hintereinander aufrufen oder eine Schleife verwenden, um mehrere Ersetzungen vorzunehmen.

2. Funktioniert das in allen Excel-Versionen? Ja, die oben genannten Methoden und VBA-Codes funktionieren in allen modernen Excel-Versionen, die VBA unterstützen.

3. Was ist der Unterschied zwischen Replace und Suchen/Ersetzen? Replace ist eine VBA-Funktion, die direkt in den Code integriert werden kann, während Suchen/Ersetzen eine manuelle Funktion in der Excel-Oberfläche ist.

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