Ваш код должен, вероятно, выглядеть следующим образом (см ниже для объяснения)
If Double.TryParse(list_numbers.Item(i), possibledouble) Then
Select Case possibledouble
Case 0 To 49.99
list_numbers.Item(i) = ""
Case 59 To 99.99
list_numbers.Item(i) = "1"
Case 100 To 199.99
list_numbers.Item(i) = "2"
Case Is > 200
list_numbers.Item(i) = "3"
Case Else
list_numbers.Item(i) = "n/a"
End Select
End If
Ну есть несколько проблем с вашим кодом, насколько я могу видеть, что я уверен, что объяснить поведение вашего видящий ,
Прежде всего метод Double.Parse на самом деле уже возвращает вам двойник для этого элемента, поэтому нет необходимости его снова конвертировать с Cdbl позже.
Еще одна серьезная проблема с этой строкой заключается в том, что если метод не может преобразовать строку в double, она выдает исключение. Я угадываю, где в вашем коде вы поймаете это исключение, не осознавая этого.
Последняя проблема заключается в том, что на самом деле я не нахожу никаких перегрузок для Double.Parse, что кроме строки и double, которые приводят меня к тому, что вы на самом деле должны использовать метод Double.TryParse, а не метод Parse. TryParse вернет true или false, если синтаксический анализ завершился успешно и поместите значение в указанном вами двойнике, если это произойдет.
Я думаю, вы должны изменить название вопроса, попросить что-то еще ВНУТРИ – Fredou