检查单元格是否填写了10位数字

问题描述 投票:0回答:3

我正在向 Excel 中的特定单元格添加 10 位数字。

如果为真,我想运行一个宏。 如果为 false,则为带有文本的消息框。

Sub Run_PNR()

If Cells(E, 7).Value = 0 Then
    MsgBox ("Enter Correct PNR Number")
Else
    Shell "explorer.exe " & Range("d25").Text
End If
End Sub
excel vba if-statement cell is-empty
3个回答
2
投票

使用

Val
函数将单元格内容转换为数字并检查其值:

Dim cellVal as Long
cellVal = Val(ActiveSheet.Cells(7, "E").Value)
If cellVal < 1000000000 Or cellVal > 9999999999 Then
    MsgBox ("Enter Correct PNR Number")
Else
    (do whatever needs to be done...)
End If

1
投票

此代码用于字母和数字。

Sub Run_PNR()
    If Len(Range("E7").value) <> 10 Then
    MsgBox ("Enter Correct PNR Number")
    Else
    Shell "explorer.exe " & Range("d25").Text
    End If
    End Sub

此代码仅适用于数字。

If IsNumeric(ActiveSheet.Range("E7").value) Then
If Len(ActiveSheet.Range("E7").value) <> 10 Then
MsgBox ("Enter Correct PNR Number")
Else
Shell "explorer.exe " & Range("d25").Text
End If
Else
MsgBox ("Enter Number only")
End If
End Sub

0
投票

RegExp
是验证 10 位数字的选项。

Sub Run_PNR()
    With CreateObject("vbscript.regexp")
        .IgnoreCase = True
        .Global = True
        .Pattern = "\d{10}"
        If .Test(Trim(Cells(7, "E").Value)) Then
            Shell "explorer.exe " & Range("d25").Text
        Else
            MsgBox ("Enter Correct PNR Number")
        End If
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.