2015-04-27 47 views
-1

我想确保所有单元格仅包含字符(A-Z/a-z)。我想确定没有任何符号,数字或其他任何东西。有小费吗?检查单元格是否只有a-z excel

例如我有这个“Š”。

+0

是的。但我是“认为”它错了,因为我是一个新手 – Sulot

回答

2
  • 打开VBA编辑器(Alt + F11)并创建一个新模块。
  • 添加对“Microsoft VBScript Regular Expressions 5.5”(工具 - >参考)的引用。
  • 在新的模块,创建这样一个新功能:

    Function IsAToZOnly(inputStr As String) As Boolean 
        Dim pattern As String: pattern = "^[A-Za-z]*$" 
        Dim regEx As New RegExp 
    
        regEx.pattern = pattern 
        IsAToZOnly = regEx.Test(inputStr) 
    End Function 
    
  • 使用新的功能,在您的工作表:

    =IsAToZOnly(A1) 
    
2

作为一个VBA函数,下面应该工作:

Option Compare Binary 
Function LettersOnly(S As String) As Boolean 
    LettersOnly = Not S Like "*[!A-Za-z]*" And S <> "" 
End Function 

在使用函数S可以是实际的字符串,也可以是关注单元格的引用。

编辑:此外,你想确定你没有在你的代码中设置Option Compare Text。默认值是Option Compare Binary,这是您需要进行此类比较的。我已经添加到代码的完整性。

+0

有趣的是,我不知道你可以匹配VBA模式,而不使用RegEx库。 – Physikbuddha

+0

@Physikbuddha只有非常简单的图案,但足以满足此要求。 –

相关问题