1 1 1 1 1 1 1 1 1 1 Rating 1.00 (1 Vote)

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