Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1192to1196
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige