Problemstellung:
Für 32Bit und 64Bit Office Versionen
Mit einer Abfrage wie
If InStr(strText, "-") <> 0 Then...
kann ich prüfen, ob ein bestimmtes Zeichen in einer Zeichenkette vorhanden ist.
Um auf weitere Zeichen zu prüfen,
muss ich entsprechend viele "If.. Then.. ElseIf"-Abfragen hintereinander ausführen.
Geht das auch einfacher?
Konkret möchte ich feststellen können, ob in einer Telefonnummer die Trennzeichen "-", "/", "(" oder ")" enthalten sind.
Abhilfe schafft eine benutzerdefinierte Funktion "MultiInStr()",
die Sie in einem neuen oder einem vorhandenen Modul ablegen:
Function MultiInStr(aStr As Variant, _ theChars As String) As Integer Dim I As Integer, Cnt As Integer Cnt = 0 For I = 1 To Len(theChars) If InStr(aStr, Mid$(theChars, I, 1)) <> 0 Then Cnt = Cnt + 1 End If Next I MultiInStr = Cnt End Function
Aufruf:
If MultiInStr(strTelefon, "-/()") <> 0 Then
Die Funktion geht in einer Schleife alle per Parameter "theChars" spezifizierten Zeichen durch und prüft
mit der Standard-Funktion "InStr()", ob das Zeichen in der Zeichenkette gemäß "aStr" vorhanden ist.
Ist das der Fall, wird ein Zähler jeweils um eins erhöht und als Funktionsergebnis gesetzt.
Ist das Ergebnis "0", ist keines der Zeichen vorhanden, ein Ergebnis ungleich "0" zeigt an,
dass mindestens ein Zeichen in der Zeichenkette vorhanden ist.
Ähnliche Artikel
Weiterlesen...