VBA 错误地评估 > 和 < 运算符
VBA evaluates > and < operators incorrectly
我有以下简单代码,vba 评估不正确(恕我直言),即使在网上广泛搜索后我也无法弄清楚:
ElseIf TextBoxSNo.Value < 1 Then
MsgBox ("Please choose existing S.No")
Exit Sub
ElseIf TextBoxSNo.Value > Cells(LastRow, 1).Value Then
MsgBox ("Please choose existing S.No")
Exit Sub
此代码限制了可以输入 Excel 用户表单的值。当用户输入低于 1 或高于 Cells(LastRow, 1).Value.
的值时,它工作正常
但是,当我输入有效值时,它也会向我显示错误消息。怎么会这样?我什至通过在 MsgBox 中将它们与错误消息一起打印出来来检查代码评估的值。看起来确实 vba 评估 5>100 为真并打印出错误消息。
编辑:如果我只保留第一个 ElseIf 语句,它会按预期工作。只有当我添加第二个 ElseIf 时,它才会计算不正确。 LastRow 被定义为整数,所以我将数字与数字进行比较
感谢您的帮助!
一个提示 - 在任何表达式上使用 Val()
函数以确保您将数字与数字进行比较。 Val() returns 如果无法转换表达式则为 0 - 这有时也很有用。
好的,所以我使用了 val() 函数并且它起作用了。感谢提示!
val(单元格(LastRow, 1).Value )
不太明白为什么我需要这个
我有以下简单代码,vba 评估不正确(恕我直言),即使在网上广泛搜索后我也无法弄清楚:
ElseIf TextBoxSNo.Value < 1 Then
MsgBox ("Please choose existing S.No")
Exit Sub
ElseIf TextBoxSNo.Value > Cells(LastRow, 1).Value Then
MsgBox ("Please choose existing S.No")
Exit Sub
此代码限制了可以输入 Excel 用户表单的值。当用户输入低于 1 或高于 Cells(LastRow, 1).Value.
的值时,它工作正常但是,当我输入有效值时,它也会向我显示错误消息。怎么会这样?我什至通过在 MsgBox 中将它们与错误消息一起打印出来来检查代码评估的值。看起来确实 vba 评估 5>100 为真并打印出错误消息。
编辑:如果我只保留第一个 ElseIf 语句,它会按预期工作。只有当我添加第二个 ElseIf 时,它才会计算不正确。 LastRow 被定义为整数,所以我将数字与数字进行比较
感谢您的帮助!
一个提示 - 在任何表达式上使用 Val()
函数以确保您将数字与数字进行比较。 Val() returns 如果无法转换表达式则为 0 - 这有时也很有用。
好的,所以我使用了 val() 函数并且它起作用了。感谢提示!
val(单元格(LastRow, 1).Value )
不太明白为什么我需要这个