Программирование для "данных не найдено"

80
9

Новое для VBA. Мне нужно ввести число в текстовое поле и найти таблицу для этого номера, а затем вернуть данные в столбцах рядом с найденным номером в текстовых полях в форме. Я сделал это, но вопрос у меня есть, как написать исключение, если номер не найден?

спросил(а) 2012-12-10T22:20:00+04:00 8 лет, 10 месяцев назад
1
Решение
102

Вы можете сделать это с помощью формулы. Предположим, что ваш номер находится в A1, а ваш список чисел находится в столбце D. Вы хотите, чтобы текст в столбце E, если вы нашли номер в A1 в списке в столбце D.

Обычно вы просто используете VLOOKUP().

=VLOOKUP(A1,D:E,2,FALSE)

Вы можете добавить простой оператор IF и ISERROR() чтобы проверить, удалось ли найти номер или нет. Обычно Excel возвращает "# N/A", если это была ошибка, но пусть предполагается, что вы хотите получить сообщение.

=IF(ISERROR(VLOOKUP(A1,D:E,2,FALSE)),"ERROR",VLOOKUP(A1,D:E,2,FALSE))

ответил(а) 2012-12-13T11:03:00+04:00 8 лет, 10 месяцев назад
47

Вот так. Предположения, сделанные для имени листа, имени диапазона, имени текстового поля и т.д. Исключительно сделано для иллюстрации, чтобы показать вам, как это сделать:

Sub FindNumber()

Dim myNum

myNum = TextBox1.Value

Dim rng as Range

Set rng = Sheets(1).Range("A1:A100").Find(myNum,lookat:xlWhole)

If Not rng is Nothing Then

'[Rest of Code]

Else

Msgbox myNum & "not found in Range"

End If

End Sub

ответил(а) 2012-12-10T22:34:00+04:00 8 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема