AW: einfacher mit RegExp
04.08.2014 10:38:02
Erich
Hi Hans,
da behaupte ich doch ganz einfach: Der Ablauf funktioniert!
Das Fenster, in dem nur ein OK-Button steht, ist die MsgBox am Ende des Codes.
Wenn da außer OK nichts ist, heißt das nur, dass strNeu leer ist. Und das wiederum heißt, dass in A1 = Cells(1, 1)
weder eine Ziffer noch ein x vorkommt.
Änder doch mal
MsgBox strNeu
in
MsgBox "Das Ergebnis ist: " & strNeu
Dann siehst du das sofort.
Hier zwei Codes, die alle Zellen in Spalte V ändern. TextfilterMitRegExp3 ist schneller:
Sub TextfilterMitRegExp3()
Dim objRegEx As Object, arQ, arZ(), zz As Long
Set objRegEx = CreateObject("VBScript.RegExp")
arQ = Cells(1, 22).Resize(Cells(Rows.Count, 22).End(xlUp).Row) ' Quelldaten Spalte V
ReDim arZ(1 To UBound(arQ), 1 To 1)
With objRegEx
.MultiLine = True
.Global = True
.IgnoreCase = True
.Pattern = "[^x0-9]"
For zz = 1 To UBound(arQ) ' Schleife über Zeilen
arZ(zz, 1) = .Replace(arQ(zz, 1), "") ' Ergebnis in arZ
Next zz
End With
Cells(1, 22).Resize(UBound(arZ)) = arZ ' Zieldaten in Spalte V
End Sub
Sub TextfilterMitRegExp2()
Dim objRegEx As Object, zz As Long
Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
.MultiLine = True
.Global = True
.IgnoreCase = True
.Pattern = "[^x0-9]"
For zz = 1 To Cells(Rows.Count, 1).End(xlUp).Row ' Schleife über Zeilen
Cells(zz, 22) = .Replace(Cells(zz, 22), "") ' Ergebnis in Spalte V
Next zz
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich