Excel VBA-在输入中允许连字符和单个空格

时间:2019-06-10 21:09:21

标签: excel vba

我正在使用此功能在用户输入中仅允许A-Z字符,但是我需要对其进行修改以仅允许单个空格和/或连字符“-”。

如果不使用正则表达式就可以完成此操作,据我了解您需要在VBA中使用正则表达式的其他引用?

Public Function IsAlpha(strValue As String) As Boolean
    IsAlpha = strValue Like WorksheetFunction.Rept("[a-zA-Z]", Len(strValue))
End Function

1 个答案:

答案 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

enter image description here

如果相反,您只想在整个字符串中允许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

enter image description here