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

Forumthread: nicht gültige Zeichen aus String filtern

nicht gültige Zeichen aus String filtern
heinzs
Hallo Excelfreunde,
in VBA möchte ich aus einem String nicht erlaubte Zeichen entfernen:
gn_erlaubte_zeichen = "1234567890HIN"
gn_string_original = "abc123HIN"
gn_string_resultat = "123HIN"
Da ich sehr viele Strings zu kontrollieren habe, würde ich ungern mit einer for-Next Schleife jeden String bearbeiten; hat jemand eine effektivere Lösung?
Danke für Hilfe!
Heinz
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: nicht gültige Zeichen aus String filtern
29.12.2010 11:42:18
Reinhard
Hallo Heinz,
ohne Schleifen fält mir nur "regexp" ein.
Suche da mal nach in der Schnellsuche hier oben links oder Internet.
Ich kann es nicht also Frage noch offen gestellt.
Gruß
Reinhard
Selection.Replace What:="a" ... usw.
29.12.2010 12:18:40
Matthias
Hallo Heinz
hier eine Variante:
Vorher den relevanten Bereich markieren
Selection.Replace What:="a", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="b", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="c", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
'usw.
also alles was Du entfernen willst dazupacken.
Gruß Matthias
Anzeige
Versuch mit RegExp
29.12.2010 12:31:22
Erich
Hallo Heinz,
jetzt hab ich mich mal an RegExp versucht. Probier mal:

Function erlaubt(strT As String) As String
Dim Regex As Object
Set Regex = CreateObject("Vbscript.Regexp")
With Regex
.Pattern = "[^HIN\d]"
.Global = True
.IgnoreCase = False
.MultiLine = False
erlaubt = .Replace(strT, "")
End With
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: nicht gültige Zeichen aus String filtern
29.12.2010 12:50:37
gerwas
Hallo
versuche doch mal folgendes anzupassen:
code
st = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 75, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, _
100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, _
200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256)
text1 = [a2] 'das ist dein String
For k = 0 To UBound(st) - 1
text1 = Replace(text1, Chr(st(k)), "")
'If text1 text2 Then text3 = text3 & st(k)
Next
[b2] = text1 'dahin soll das ergebnis
code
gruß gerwas
Anzeige
AW: nicht gültige Zeichen aus String filtern
31.12.2010 15:35:22
Franc
Würde es so versuchen. Nicht gültige zeichen Filtern ist bissi schwerer, wenn man nur eine Liste der erlaubten zeichen hat. ^^
Die Zuweisung der Zeichen kann man natürlich auch variabel zuweisen. Mußt nur sagen wo du die Original Zeichenketten herbekommst.
Bzw muß man auch noch festlegen wo das dann eingefügt werden soll. ^^
Das LCase steht dafür das es nicht auf Groß/Kleinschreibung ankommt.
Sprich hat der Nutzer "h" geschrieben und in der Zeichenliste würde "H" stehen, dann wäre das nicht das gleiche. Mit LCase vergleiche ich beides als wenn es klein geschrieben wäre.
Sub erlaubt()
Dim gn_erlaubte_Zeichen As String, gn_string_Original As String, gn_string_Neu As String
Dim i As Integer, j As Integer
gn_erlaubte_Zeichen = "1234567890HIN"
gn_string_Original = "abc123HIN"
For i = 1 To Len(gn_string_Original)
For j = 1 To Len(gn_erlaubte_Zeichen)
If LCase(Mid(gn_string_Original, i, 1)) = LCase(Mid(gn_erlaubte_Zeichen, j, 1)) Then
gn_string_Neu = gn_string_Neu & Mid(gn_string_Original, i, 1)
Exit For
End If
Next j
Next i
MsgBox gn_string_Neu
End Sub

Anzeige
AW: nicht gültige Zeichen aus String filtern
31.12.2010 15:38:00
heinzs
Hallo Franc,
danke für Deine Hilfe! Ich werde die Lösung einbauen :)
Dir und allen anderen Ratgebern einen guten Rutsch ins neue Jahr.
MfG
Heinz
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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