Эта строка:
Do While intInputNum > 0
вызывает у вас проблемы.Когда пользователь вводит нецелое значение, после первого цикла эта строка: Val(InputBox("Enter a number (0 to end)"))
обнуляется.Очевидно, что оно не больше 0.
Повторно используйте ваш логический оператор для оценки userInput, а не intInputNum, например:
userInput = Val(InputBox("Enter a number (0 to end)"))
validInput = Integer.TryParse(userInput, intInputNum)
Затем вам нужно исправить окно сообщенияместо, чтобы просто показать за пределами вашего цикла, а не в нем.Поэтому, когда validInput <> True
прервет цикл и выведет ваш Msgbox
.
, вам также потребуется исправить оператор Do While
, чтобы он правильно оценивал userInput вместо intInputNum
.