我正在使用此功能在用户输入中仅允许A-Z字符,但是我需要对其进行修改以仅允许单个空格和/或连字符“-”。
如果不使用正则表达式就可以完成此操作,据我了解您需要在VBA中使用正则表达式的其他引用?
Public Function IsAlpha(strValue As String) As Boolean
IsAlpha = strValue Like WorksheetFunction.Rept("[a-zA-Z]", Len(strValue))
End Function
答案 0 :(得分:3)
您可以将-
和一个空格添加到类似内容中:
"[-a-zA-Z ]"
如果您不希望使用双精度空格(前后两个空格)或尾随或前导空格,请使用以下方法:
Public Function IsAlpha(strValue As String) As Boolean
IsAlpha = strValue Like WorksheetFunction.Rept("[-a-zA-Z ]", Len(strValue)) And _
Len(strValue) = Len(Application.Trim(strValue))
End Function
如果相反,您只想在整个字符串中允许1个空格,则使用以下命令:
Public Function IsAlpha(strValue As String) As Boolean
IsAlpha = strValue Like WorksheetFunction.Rept("[-a-zA-Z ]", Len(strValue)) And _
Len(strValue) <= Len(Replace(strValue, " ", "")) + 1
End Function