Ich benutze eine Funktion, mit der ich eine Textfolge überprüfen und bewerten kann, ob sie aus Buchstaben besteht. Es ist in einem Modul namens "General" untergebracht. Das allgemeine Modul existiert nur, um öffentliche Funktionen und Variablen aufzunehmen. Funktionscode wird im Folgenden aufgeführt:Wie kann ich prüfen, ob eine Zeichenfolge nur Buchstaben enthält?
Public Function IsAlpha(strValue As String) As Boolean
Dim intPos As Integer
For intPos = 1 To Len(strValue)
Select Case Asc(Mid(strValue, intPos, 1))
Case 65 To 90, 97 To 122
IsLetter = True
Case Else
IsLetter = False
Exit For
End Select
Next
End Function
Next Ich habe zwei „if“ Routinen, die die ersten zwei Zeichen einer Textbox in meiner Userform zu bewerten. Die erste Routine fragt, ob das erste Zeichen numerisch ist und die zweite Routine fragt, ob das zweite Zeichen Alpha ist. Derzeit wirft die zweite "if" Routine mich aus der Subroutine, wenn IsAlpha True testet, anstatt die MsgBox zu generieren. Wird die IsAlpha-Funktion nicht korrekt aufgerufen?
Wenn Code-Routinen im Folgenden aufgeführt:
Private Sub CmdMap_Click()
With TxtDxCode
If IsNumeric(Left(Me.TxtDxCode.Text, 1)) Then
MsgBox "Incorrect DX Code format was entered. ", vbExclamation, "DX Code Entry"
TxtDxCode.Value = ""
TxtDxCode.SetFocus
Exit Sub
End If
If IsAlpha(Left(Me.TxtDxCode.Text, 2)) Then
MsgBox "Incorrect DX Code format was entered. ", vbExclamation, "DX Code Entry"
TxtDxCode.Value = ""
TxtDxCode.SetFocus
Exit Sub
End If
End With
Wie sollte der DX-Code aussehen? –
Ihre Funktionsnamen "IsAlpha" .. Ihre Exit-Zuordnung: "IsLetter" .. das wird nicht gut funktionieren .. – Ditto
@MaciejLos Char1 = Alpha Char2 = Numeric Zusätzliche Zeichen = Alpha + Numeric –