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 )

不太明白为什么我需要这个