Ren*_*ger 6 excel vba excel-vba access-vba
我正在寻找一个优雅的解决方案来确定变量是否是VBA中的整数.不幸的是,如果变体是从字符串创建的,我就被卡住了.这是一个小测试脚本:
dim v as variant
v = "42"
if v <> round(v) then
msgBox("<>")
end if
Run Code Online (Sandbox Code Playgroud)
这里,msgBox会弹出,可能是因为变量是从字符串创建的,尽管我希望v是= round(v).
你应该写一些类似的东西:
if cDbl(v) <> round(cDbl(v)) Then
Run Code Online (Sandbox Code Playgroud)
其中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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29457 次 |
| 最近记录: |