如果单元格 C4 中未输入任何数字,如何让 IF 函数返回错误消息。如果您输入数字,下面的代码就会运行,但如果单元格 C4 为空,它也会运行,只有当我在单元格中输入文本时才会出现错误消息。
Private Sub CommandButton1_Click()
If IsNumeric(Range("C4")) = True Then
FinishClear
Else
MsgBox "Please enter Invoice number"
End If
End Sub
答案1
您的问题是,IsNumeric()
如果单元格为空,则该函数会返回 true,因为它的定义。请参阅函数的IsNumeric()
文档这里
要检查单元格是否为空,可以使用该IsEmpty()
函数。你可以看到这个关联 了解有关此功能的更多信息。
因此,在您的函数中,您需要验证单元格不为空并且包含数值。
Private Sub CommandButton1_Click()
If IsNumeric(Range("C4").value) And Not IsEmpty(Range("C4")) Then
FinishClear
Else
MsgBox "Please enter Invoice number"
End If
End Sub
答案2
问题是你没有调用这个值
Range("C4")
是单元格对象。它有许多属性,其中之一是值。因此,您需要更新为Range("C4").Value
您还要检查它是否是数字,但您需要检查它是否为空。
这意味着你的 if 语句应该是
If Range("C4").Value <> "" Then