isnumeric VBA这个函数在这里做错了什么?

时间:2014-11-16 16:15:31

标签: vba function range

Dim RX as range

Set RX=Application.InputBox(prompt:=" Enter the range for X", Type:=8)

if not isnumeric(RX) then
    msgbox(" Please use only numbers")
    exit sub
end if

问题是,无论是否有字符,Excel都会执行命令 所以我的问题是我希望它检查范围以及是否有任何字符来显示msgbox。如果没有任何字符继续。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,这应该有效:

Sub test()
Dim RX As Range

Set RX = Application.InputBox(prompt:=" Enter the range for X", Type:=8)
If WorksheetFunction.Count(RX) <> Application.CountA(RX) Then
    MsgBox (" Please use only numbers")
    Exit Sub
End If
End Sub

COUNTACOUNT是您可以在VBA中使用的工作表函数。 COUNTA返回非空单元格的数量。 COUNT返回带数字的单元格数。换句话说,COUNTA计算任何内容,而COUNT仅计算数字。如果它们不同,那么一些内容没有数字的单元格。

此外,此代码忽略空白单元格并将“4”之类的内容计为文本。