in folgendem Beispiel möchte ich bestimmte Zeichen löschen. D.h: die, die keine "richtigen Buchstaben" sind.
https://www.herber.de/bbs/user/69042.xls
Kann mir jemand mit einer entsprechenden Methode weiterhelfen?
Gruß
Karsten
Sub Nur_Text()
Dim Regex As Object
Dim meAr(), strInhalt$
Dim nCount&, lngMaxRow&
With Sheets("Tabelle1") 'Tabelle anpassen
lngMaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If lngMaxRow = 1 Then
meAr = .Range("A1", .Cells(lngMaxRow, 1)).Resize(, 2).Value2
Redim Preserve meAr(1 To Ubound(meAr), 1 To 1)
Else
meAr = .Range("A1", .Cells(lngMaxRow, 1)).Value2
End If
Set Regex = CreateObject("Vbscript.Regexp")
With Regex
.MultiLine = True
.Global = True
For nCount = 1 To Ubound(meAr)
.Pattern = "\W|\d"
meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
.Pattern = " +"
meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
.Pattern = "^ | $"
meAr(nCount, 1) = .Replace(meAr(nCount, 1), "")
Next nCount
End With
.Range("A1").Resize(Ubound(meAr)) = meAr
End With
End Sub
Gruß TinoSub Nur_Text()
Dim Regex As Object
Dim meAr(), strInhalt$
Dim nCount&, lngMaxRow&
Dim oMatch As Object
With Sheets("Tabelle1") 'Tabelle anpassen
lngMaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If lngMaxRow = 1 Then
meAr = .Range("A1", .Cells(lngMaxRow, 1)).Resize(, 2).Value2
Redim Preserve meAr(1 To Ubound(meAr), 1 To 1)
Else
meAr = .Range("A1", .Cells(lngMaxRow, 1)).Value2
End If
Set Regex = CreateObject("Vbscript.Regexp")
With Regex
.MultiLine = True
.Global = True
For nCount = 1 To Ubound(meAr)
.Pattern = "[.!?]"
Set oMatch = .Execute(meAr(nCount, 1))
For Each oMatch In oMatch
meAr(nCount, 1) = Left$(meAr(nCount, 1), oMatch.FirstIndex + 1)
Exit For
Next oMatch
.Pattern = "[^A-Za-z .!?,äüöß]"
meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
.Pattern = " +"
meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
.Pattern = "^ | $"
meAr(nCount, 1) = .Replace(meAr(nCount, 1), "")
Next nCount
End With
.Range("A1").Resize(Ubound(meAr)) = meAr
End With
End Sub
Gruß Tino
For liRow =...
durchläuft Spalte A bis zur letzten, benutzen Zeile, weil ja deine Daten in Spalte A stehen.
For liChar =...
überprüft jedes einzelne Zeichen der Einträge in Spalte A.
Do Until...
werden so lange 2 nebeneinander stehende Leerzeichen durch nur 1 Leerzeichen ersetzt, bis es keine 2 nebeneinander stehende Leerzeichen mehr gibt.
Cells(liRow, 1).Value = Trim(Cells(liRow, 1).Value)
werden auch diese Leerzeichen eliminiert, so dass wirklich nur die Buchstaben übrig bleiben.A | B | |
3 | Æ]/ó·Mæ¿~>ç· 0 | #WERT! |
4 | çSie sahen zu, wie die Sonne unterging.' | Sie sahen zu, wie die Sonne unterging. |
5 | çThey watched the sun setting.0 | They watched the sun setting. |
6 | çThey watched the sun setting.0 | They watched the sun setting. |
7 | çSie sorgte für das Baby, während die Eltern weg waren.A | Sie sorgte für das Baby, während die Eltern weg waren. |
8 | çShe &took care of& the baby while the parents were out.' | She &took care of& the baby while the parents were out. |
9 | ç&Take care& or you will fall.5 | &Take care& or you will fall. |
10 | çEin Lächeln lag auf dem Gesicht des Kindes.2 ~ | Ein Lächeln lag auf dem Gesicht des Kindes. |
11 | çThere was a &smile& on the child's face.3 ~ | There was a &smile& on the child's face. |
12 | çIhr Hund ist ein Schutz gegen Einbrecher.7 } | Ihr Hund ist ein Schutz gegen Einbrecher. |
13 | çTheir dog is a &protection& against burglars.< } | Their dog is a &protection& against burglars. |
14 | çMan kann ein Kind nicht vor jeder Gefahr schützen.< } | Man kann ein Kind nicht vor jeder Gefahr schützen. |
15 | çYou cannot &protect& a child against every danger.. | | You cannot &protect& a child against every danger. |
16 | çPaß auf (auf das), was ich dir sage!+ | | Paß auf (auf das), was ich dir sage! |
17 | çPay attention to what I tell you.> { | Pay attention to what I tell you. |
18 | çIhr Mann merkte nicht, daß sie ein neues Kleid trug.G { | Ihr Mann merkte nicht, daß sie ein neues Kleid trug. |
19 | çHer husband didn't ¬ice& that she was wearing a new dress.E { | Her husband didn't ¬ice& that she was wearing a new dress. |
20 | çIch vermißte meinen Geldbeutel erst, als ich zahlen wollte.8 z | Ich vermißte meinen Geldbeutel erst, als ich zahlen wollte. |
21 | çI only &missed& my purse when I wanted to pay.> z | I only &missed& my purse when I wanted to pay. |
22 | çEine Kapelle wurde zum Andenken an den König gebaut.3 z | Eine Kapelle wurde zum Andenken an den König gebaut. |
23 | çA chapel was built in memory of the king.2 z | A chapel was built in memory of the king. |
24 | çSie hat keine Erinnerung an ihren Vater., y | Sie hat keine Erinnerung an ihren Vater. |
25 | çShe has no &memory& of her father.8 y | She has no &memory& of her father. |
26 | çKönnen wir ihm in dieser Angelegenheit helfen?+ y | Können wir ihm in dieser Angelegenheit helfen? |
27 | çCan we help him in this &matter&?, y | Can we help him in this &matter&? |
28 | çEr redete sehr freundlich mit uns.4 y | Er redete sehr freundlich mit uns. |
29 | çHe talked to us in a very friendly manner.C y | He talked to us in a very friendly manner. |
30 | çDie Art, wie sie sich kleidet, zeugt von gutem Geschmack.4 x | Die Art, wie sie sich kleidet, zeugt von gutem Geschmack. |
31 | çHer &manner& of dressing shows good taste.- x | Her &manner& of dressing shows good taste. |
32 | çEr ging sehr früh von zu Hause weg.9 w | Er ging sehr früh von zu Hause weg. |
33 | çEr versteckte den Brief in seinem Schreibtisch.* w | Er versteckte den Brief in seinem Schreibtisch. |
34 | çHe &hid& the letter in his desk.A v | He &hid& the letter in his desk. |
35 | çEltern können ihre Kinder nicht vor Krankheit schützen.@ v | Eltern können ihre Kinder nicht vor Krankheit schützen. |
36 | çParents cannot &guard& their children against disease.. v | Parents cannot &guard& their children against disease. |
37 | çVergiß nicht, das Licht auszumachen.. u | Vergiß nicht, das Licht auszumachen. |
38 | çDon't &forget& to put out the light. ¤ í ê ¤Q´c8émÐ5ÐR¦=ï¡RÌZ | Don't &forget& to put out the light. |
verwendete Formeln | |
Zelle | Formel |
B3 | =LINKS(TEIL(A3;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A3;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A3;3;999)));FINDEN("!";TEIL(A3;3;999));FINDEN("?";TEIL(A3;3;999)));FINDEN(".";TEIL(A3;3;999)))) |
B4 | =LINKS(TEIL(A4;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A4;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A4;3;999)));FINDEN("!";TEIL(A4;3;999));FINDEN("?";TEIL(A4;3;999)));FINDEN(".";TEIL(A4;3;999)))) |
B5 | =LINKS(TEIL(A5;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A5;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A5;3;999)));FINDEN("!";TEIL(A5;3;999));FINDEN("?";TEIL(A5;3;999)));FINDEN(".";TEIL(A5;3;999)))) |
B6 | =LINKS(TEIL(A6;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A6;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A6;3;999)));FINDEN("!";TEIL(A6;3;999));FINDEN("?";TEIL(A6;3;999)));FINDEN(".";TEIL(A6;3;999)))) |
B7 | =LINKS(TEIL(A7;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A7;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A7;3;999)));FINDEN("!";TEIL(A7;3;999));FINDEN("?";TEIL(A7;3;999)));FINDEN(".";TEIL(A7;3;999)))) |
B8 | =LINKS(TEIL(A8;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A8;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A8;3;999)));FINDEN("!";TEIL(A8;3;999));FINDEN("?";TEIL(A8;3;999)));FINDEN(".";TEIL(A8;3;999)))) |
B9 | =LINKS(TEIL(A9;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A9;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A9;3;999)));FINDEN("!";TEIL(A9;3;999));FINDEN("?";TEIL(A9;3;999)));FINDEN(".";TEIL(A9;3;999)))) |
B10 | =LINKS(TEIL(A10;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A10;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A10;3;999)));FINDEN("!";TEIL(A10;3;999));FINDEN("?";TEIL(A10;3;999)));FINDEN(".";TEIL(A10;3;999)))) |
B11 | =LINKS(TEIL(A11;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A11;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A11;3;999)));FINDEN("!";TEIL(A11;3;999));FINDEN("?";TEIL(A11;3;999)));FINDEN(".";TEIL(A11;3;999)))) |
B12 | =LINKS(TEIL(A12;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A12;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A12;3;999)));FINDEN("!";TEIL(A12;3;999));FINDEN("?";TEIL(A12;3;999)));FINDEN(".";TEIL(A12;3;999)))) |
B13 | =LINKS(TEIL(A13;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A13;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A13;3;999)));FINDEN("!";TEIL(A13;3;999));FINDEN("?";TEIL(A13;3;999)));FINDEN(".";TEIL(A13;3;999)))) |
B14 | =LINKS(TEIL(A14;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A14;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A14;3;999)));FINDEN("!";TEIL(A14;3;999));FINDEN("?";TEIL(A14;3;999)));FINDEN(".";TEIL(A14;3;999)))) |
B15 | =LINKS(TEIL(A15;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A15;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A15;3;999)));FINDEN("!";TEIL(A15;3;999));FINDEN("?";TEIL(A15;3;999)));FINDEN(".";TEIL(A15;3;999)))) |
B16 | =LINKS(TEIL(A16;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A16;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A16;3;999)));FINDEN("!";TEIL(A16;3;999));FINDEN("?";TEIL(A16;3;999)));FINDEN(".";TEIL(A16;3;999)))) |
B17 | =LINKS(TEIL(A17;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A17;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A17;3;999)));FINDEN("!";TEIL(A17;3;999));FINDEN("?";TEIL(A17;3;999)));FINDEN(".";TEIL(A17;3;999)))) |
B18 | =LINKS(TEIL(A18;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A18;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A18;3;999)));FINDEN("!";TEIL(A18;3;999));FINDEN("?";TEIL(A18;3;999)));FINDEN(".";TEIL(A18;3;999)))) |
B19 | =LINKS(TEIL(A19;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A19;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A19;3;999)));FINDEN("!";TEIL(A19;3;999));FINDEN("?";TEIL(A19;3;999)));FINDEN(".";TEIL(A19;3;999)))) |
B20 | =LINKS(TEIL(A20;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A20;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A20;3;999)));FINDEN("!";TEIL(A20;3;999));FINDEN("?";TEIL(A20;3;999)));FINDEN(".";TEIL(A20;3;999)))) |
B21 | =LINKS(TEIL(A21;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A21;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A21;3;999)));FINDEN("!";TEIL(A21;3;999));FINDEN("?";TEIL(A21;3;999)));FINDEN(".";TEIL(A21;3;999)))) |
B22 | =LINKS(TEIL(A22;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A22;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A22;3;999)));FINDEN("!";TEIL(A22;3;999));FINDEN("?";TEIL(A22;3;999)));FINDEN(".";TEIL(A22;3;999)))) |
B23 | =LINKS(TEIL(A23;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A23;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A23;3;999)));FINDEN("!";TEIL(A23;3;999));FINDEN("?";TEIL(A23;3;999)));FINDEN(".";TEIL(A23;3;999)))) |
B24 | =LINKS(TEIL(A24;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A24;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A24;3;999)));FINDEN("!";TEIL(A24;3;999));FINDEN("?";TEIL(A24;3;999)));FINDEN(".";TEIL(A24;3;999)))) |
B25 | =LINKS(TEIL(A25;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A25;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A25;3;999)));FINDEN("!";TEIL(A25;3;999));FINDEN("?";TEIL(A25;3;999)));FINDEN(".";TEIL(A25;3;999)))) |
B26 | =LINKS(TEIL(A26;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A26;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A26;3;999)));FINDEN("!";TEIL(A26;3;999));FINDEN("?";TEIL(A26;3;999)));FINDEN(".";TEIL(A26;3;999)))) |
B27 | =LINKS(TEIL(A27;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A27;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A27;3;999)));FINDEN("!";TEIL(A27;3;999));FINDEN("?";TEIL(A27;3;999)));FINDEN(".";TEIL(A27;3;999)))) |
B28 | =LINKS(TEIL(A28;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A28;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A28;3;999)));FINDEN("!";TEIL(A28;3;999));FINDEN("?";TEIL(A28;3;999)));FINDEN(".";TEIL(A28;3;999)))) |
B29 | =LINKS(TEIL(A29;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A29;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A29;3;999)));FINDEN("!";TEIL(A29;3;999));FINDEN("?";TEIL(A29;3;999)));FINDEN(".";TEIL(A29;3;999)))) |
B30 | =LINKS(TEIL(A30;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A30;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A30;3;999)));FINDEN("!";TEIL(A30;3;999));FINDEN("?";TEIL(A30;3;999)));FINDEN(".";TEIL(A30;3;999)))) |
B31 | =LINKS(TEIL(A31;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A31;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A31;3;999)));FINDEN("!";TEIL(A31;3;999));FINDEN("?";TEIL(A31;3;999)));FINDEN(".";TEIL(A31;3;999)))) |
B32 | =LINKS(TEIL(A32;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A32;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A32;3;999)));FINDEN("!";TEIL(A32;3;999));FINDEN("?";TEIL(A32;3;999)));FINDEN(".";TEIL(A32;3;999)))) |
B33 | =LINKS(TEIL(A33;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A33;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A33;3;999)));FINDEN("!";TEIL(A33;3;999));FINDEN("?";TEIL(A33;3;999)));FINDEN(".";TEIL(A33;3;999)))) |
B34 | =LINKS(TEIL(A34;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A34;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A34;3;999)));FINDEN("!";TEIL(A34;3;999));FINDEN("?";TEIL(A34;3;999)));FINDEN(".";TEIL(A34;3;999)))) |
B35 | =LINKS(TEIL(A35;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A35;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A35;3;999)));FINDEN("!";TEIL(A35;3;999));FINDEN("?";TEIL(A35;3;999)));FINDEN(".";TEIL(A35;3;999)))) |
B36 | =LINKS(TEIL(A36;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A36;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A36;3;999)));FINDEN("!";TEIL(A36;3;999));FINDEN("?";TEIL(A36;3;999)));FINDEN(".";TEIL(A36;3;999)))) |
B37 | =LINKS(TEIL(A37;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A37;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A37;3;999)));FINDEN("!";TEIL(A37;3;999));FINDEN("?";TEIL(A37;3;999)));FINDEN(".";TEIL(A37;3;999)))) |
B38 | =LINKS(TEIL(A38;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A38;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A38;3;999)));FINDEN("!";TEIL(A38;3;999));FINDEN("?";TEIL(A38;3;999)));FINDEN(".";TEIL(A38;3;999)))) |
Um in Excel bestimmte Zeichen zu löschen, die keine "richtigen Buchstaben" sind, kannst du den folgenden VBA-Code verwenden. Dieser Code nutzt die RegEx-Funktionalität, um nicht alphabetische Zeichen zu entfernen:
ALT + F11
, um den VBA-Editor zu starten.Einfügen
die Option Modul
, um ein neues Modul zu erstellen.Sub Nur_Text()
Dim Regex As Object
Dim meAr(), nCount&, lngMaxRow&
With Sheets("Tabelle1") ' Tabelle anpassen
lngMaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
meAr = .Range("A1", .Cells(lngMaxRow, 1)).Value2
Set Regex = CreateObject("Vbscript.RegExp")
With Regex
.MultiLine = True
.Global = True
For nCount = 1 To UBound(meAr)
.Pattern = "[^A-Za-z .!?,äüöß]"
meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
Next nCount
End With
.Range("A1").Resize(UBound(meAr)) = meAr
End With
End Sub
ALT + F8
drückst und das Makro Nur_Text
auswählst.Fehler: "Objekt nicht gefunden"
Lösung: Stelle sicher, dass der Tabellenname in .With Sheets("Tabelle1")
korrekt ist.
Fehler: Das Makro führt nicht aus
Lösung: Überprüfe, ob die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Einstellungen für Makros
und aktiviere die Makros.
Eine einfache Methode ohne VBA besteht darin, Excel-Formeln zu verwenden. Hier ist ein Beispiel:
WECHSELN
, um unerwünschte Zeichen zu ersetzen:
=WECHSELN(A1; "unwanted_character"; "")
WECHSELN
-Funktionen, um mehrere Zeichen zu entfernen.Angenommen, du hast in Zelle A1 den Text "H3ll0 W0rld!" und möchtest nur die Buchstaben und Leerzeichen behalten:
=WECHSELN(WECHSELN(WECHSELN(A1; "3"; ""); "0"; ""); "!"; "")
Das Ergebnis wäre "Hll Wrld" in der Zelle, nachdem die unerwünschten Zeichen entfernt wurden.
1. Wie kann ich sicherstellen, dass mein Makro funktioniert?
Achte darauf, dass die Tabelle, auf die du zugreifst, existiert und die richtigen Daten enthält.
2. Kann ich diese Methode auch auf andere Tabellen anwenden?
Ja, ändere einfach den Tabellennamen im Code, um die gewünschte Tabelle anzusprechen.
3. Was, wenn ich nur bestimmte Zeichen entfernen möchte?
Passe das RegEx-Muster im Code an, um nur die gewünschten Zeichen zu entfernen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen