如何确定变量是否是VBA中的整数?

我正在寻找一个优雅的解决方案来确定变量是否是VBA中的整数.不幸的是,如果变体是从字符串创建的,我就被卡住了.这是一个小测试脚本:

dim v as variant
v = "42"
if v <> round(v) then
   msgBox("<>")
end if

这里,msgBox会弹出,可能是因为变量是从字符串创建的,尽管我希望v是= round(v).

最佳答案
你应该写一些类似的东西:

if cDbl(v) <> round(cDbl(v)) Then

其中cDbl是将任何数据转换为双类型数字的函数.在调用cDbl函数之前,您可能必须处理使用isNumeric()函数无法将v转换为数字的情况.您甚至可以使用cInt函数进行比较:

if isnumeric(v) then
    if cDbl(v) - cInt(v) <> 0 Then
    ....
    endif
else
   debug.print "data cannot be converted to a number"
endif

转载注明原文:如何确定变量是否是VBA中的整数? - 代码日志