我有以下简单的代码,vba评估不正确(imho),即使在广泛搜索网页后我也无法弄明白:
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定义为整数,因此我将数字与数字进行比较
感谢您的帮助!
答案 0 :(得分:2)
一个提示 - 在任何表达式上使用Val()
函数,以确保您将数字与数字进行比较。如果无法转换表达式,Val()将返回0 - 这有时也很有用。
答案 1 :(得分:-1)
好的,所以我使用了val()函数,它可以工作。谢谢你的提示!
val(Cells(LastRow,1).Value)
我真的不明白为什么我需要这个