Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

String prüfen

Forumthread: 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
Anzeige

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