我正在尝试运行一个检查用户输入的单元格并确保它们不是空白的marco。我在一个牢房里很难过。我希望用户仅限于输入2个字母,我希望它检查以确保没有在该单元格中输入数字,否则会抛出错误消息并退出sub。非常感谢任何帮助!
If Worksheets("New PN").Range("B12").Value = "" Then
MsgBox "Date cannot be left empty.", vbOKOnly + vbExclamation, "Entry Error"
Exit Sub
End If
答案 0 :(得分:2)
试试这个:
my_string = Worksheets("New PN").Range("B12").Value
If Len(my_string) = 2 And Left(my_string, 1) Like "[A-Za-z]" _
And Right(my_string, 1) Like "[A-Za-z]" Then
'~~execute what you want here
Else
MsgBox "Invalid input" & vbNewLine & "Enter 2 LETTERS only"
End If
希望这有帮助。
答案 1 :(得分:1)
尝试这个!
cellContent = Worksheets("New PN").Range("B12").Value
leftCC = Left(cellContent, 1)
rightCC = Right(cellContent, 1)
If Len(cellContent) <> 2 Then
MsgBox "There needs to be 2 characters."
Exit Sub
ElseIf (Asc(leftCC) < 65 Or Asc(leftCC) > 122 _
Or (Asc(leftCC) > 90 And Asc(leftCC) < 97)) _
Or _
(Asc(rightCC) < 65 Or Asc(rightCC) > 122 _
Or (Asc(rightCC) > 90 And Asc(rightCC) < 97)) Then
MsgBox "Both characters can only be letters."
Exit Sub
End If
可能会变得大而可怕,但它会100%完成工作。
编辑: Asc(char)
公式返回所提供字符的ascii编号。 a-z和A-Z的外部界限是65和122,但是中间包含一些非字符(即[,\,],^,_,`)。因此,可怕的是。