Anzeige
Archiv - Navigation
1844to1848
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

String prüfen

String prüfen
03.09.2021 08:35:09
heinzs
Hallo Excel Fans,
ich muß in VBA einen String prüfen, der folgendes Format beinhaltet "xx########"; d.h. genau 2 Buchstaben gefolgt von genau 8 Ziffern.
Beispiel: String = "abcdef1234567890" = ok, 2 Buchstaben gefolgt von 8 Ziffern beginnen ab Position 5 bis Position 14, d.h "ef12345678".
Beispiel: String = "a4711" = nicht ok, keine 2 Buchstaben, keine 8 Ziffern
Beispiel: String = ab123456.7" = nicht ok, ungültige Zeichen (Punkt)
Frage:
Wie kann ich a) die Bedingung prüfen, b) den brauchbaren Teil ermitteln?
Danke für Hilfe!
Heinz

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String prüfen
03.09.2021 08:49:36
ChrisL
Hi Heinz
Folgender Code in ein VBA-Standardmodul kopieren:

Public Function myRegEx(TextInput As String) As String
Dim regEx As Object: Set regEx = CreateObject("VBscript.regexp")
Dim matches
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = True
.Pattern = "[a-z]{2}\d{8}"
End With
If regEx.test(TextInput) Then
Set matches = regEx.Execute(TextInput)
myRegEx = matches(0).Value
End If
End Function
Anschliessend als normale Formel verwenden:

=myregex(A1)""
bzw.

=myregex(A1)
Der Pattern:

[a-z]{2}\d{8}
Berücksichtigt Buchstaben A-Z ohne Sonderzeichen/Umlaute.
Mittels:

.IgnoreCase = True
Wird die Gross-/Kleinschreibung ignoriert
cu
Chris
Anzeige
AW: String prüfen
03.09.2021 08:53:22
Oberschlumpf
Hi Heinz,
ich würd das Problem lösen, in dem ich mit For/Next vom ersten bis letzten Zeichen alles mit MID() überprüfe.
Und wenn gleichzeitig auf 2 Buchstaben 8 Zahlen folgen, dann kenne ich die Startposition im Text und sowieso immer die Anzahl Gesamtzeichen = 10.
Hilfts?
Ciao
Thorsten
AW: String prüfen
03.09.2021 08:55:25
Nepumuk
Hallo Heinz,
teste mal:

Public Sub Beispiel()
Dim objRegEx As Object
Dim strText As String
Set objRegEx = CreateObject(Class:="VBScript.RegExp")
With objRegEx
.Global = True
.IgnoreCase = True
.Pattern = "[a-z]{2}\d{8}"
strText = "abcdef1234567890"
If .Test(strText) Then
MsgBox "OK"
Else
MsgBox "Nicht OK"
End If
strText = "a4711"
If .Test(strText) Then
MsgBox "OK"
Else
MsgBox "Nicht OK"
End If
strText = "ab123456.7"
If .Test(strText) Then
MsgBox "OK"
Else
MsgBox "Nicht OK"
End If
End With
Set objRegEx = Nothing
End Sub
Gruß
Nepumuk
Anzeige
AW: String prüfen
03.09.2021 09:06:52
Daniel
HI
prüfen geht einfach:

IF String Like "*[a-z][a-z]########* then
Position ermitteln geht dann so:

for i = len(String) - 9 to 1 step -1
if Mid(String, i, 10) like "[a-z][a-z]########" then Exit for
next
Position steht dann in i
solltest du diese Schleife ohne vorherige Prüfung durchführen und String entspricht nicht der Anforderung, ist i = 0, du du kannst die Prüfung auch nach der Schleife mit IF i > 0 Then machen.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige