У меня есть следующий простой код, который VBA оценивает неправильно (имхо) и я не могу понять его, даже после того, как поиск в Интернете широко: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
Этот код ristricts значения можно ввести форму пользователя Excel. Он отлично работает, когда пользователь вводит значение ниже 1 или выше, чем ячейки (LastRow, 1) .Value.
Однако он также показывает мне сообщение об ошибке при вводе действительного значения. Как это может быть? Я даже проверил значения, которые оценивает код, распечатав их в MsgBox вместе с сообщением об ошибке. Кажется, что vba оценивает 5> 100 как истинный и выводит сообщение об ошибке.
Редактировать: Если я поддерживаю только первое заявление ElseIf, он работает так, как ожидалось. Только когда я добавляю второй ElseIf, он неправильно оценивает. LastRow определяется как Integer, поэтому я сравниваю числа с цифрами
Спасибо за любую помощь!
Вы уверены, что вы сравниваете номера с номерами, а не числа со строками или что-то подобное? Попробуйте преобразовать все в числа перед сравнением. – moffeltje
Я уверен, что оба числа. LastRow определяется как целое. –
спасибо за очень быструю помощь. –