关于文本框获取的数字比较大小的有关问题
关于文本框获取的数字比较大小的问题
今天做VBA打印,通过两文本框获取起始行和打印的末行。
如 textbox1 为起始行, textbox2输入末行,
textbox1输入 5, textbox2 输入 9, 判断 textbox1<=textbox2, 结果 true
textbox1输入 5, textbox2 输入 19, 判断 textbox1<=textbox2, 结果 false
为什么??
但
textbox1输入 05 textbox2 输入 19 判断 textbox1<=textbox2 结果true
------解决方案--------------------
if clng(textbox1.text)<clng(textbox2.text) then
------解决方案--------------------
你使用的是字符比较,改用数字比较:
If Val(textbox1)<= Val(textbox2) Then
------解决方案--------------------
textbox的text属性数据类型是string
如果你能保证俩textbox的输入是数字的话,可以直接比较textbox1.text * 1 和 textbox2.text * 1 ,这样可以隐式转换成double类型
------解决方案--------------------
先用IsNumeric(trim(textbox1.text))判断是否是数字,然后用直接比较textbox1.text 和 textbox2.text ,隐式转换
今天做VBA打印,通过两文本框获取起始行和打印的末行。
如 textbox1 为起始行, textbox2输入末行,
textbox1输入 5, textbox2 输入 9, 判断 textbox1<=textbox2, 结果 true
textbox1输入 5, textbox2 输入 19, 判断 textbox1<=textbox2, 结果 false
为什么??
但
textbox1输入 05 textbox2 输入 19 判断 textbox1<=textbox2 结果true
------解决方案--------------------
if clng(textbox1.text)<clng(textbox2.text) then
------解决方案--------------------
你使用的是字符比较,改用数字比较:
If Val(textbox1)<= Val(textbox2) Then
------解决方案--------------------
textbox的text属性数据类型是string
如果你能保证俩textbox的输入是数字的话,可以直接比较textbox1.text * 1 和 textbox2.text * 1 ,这样可以隐式转换成double类型
------解决方案--------------------
先用IsNumeric(trim(textbox1.text))判断是否是数字,然后用直接比较textbox1.text 和 textbox2.text ,隐式转换