Find(What... как обойти ошибку

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Taranov_ivan
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 10.11.2005 (Чт) 7:07

Find(What... как обойти ошибку

Сообщение Taranov_ivan » 12.11.2005 (Сб) 8:10

На листе №1 находится информация по предприятиям с пятизначным регистрационным номером. Какой можно написать макрос, чтобы при вводе номера отображалось на листе №2 информация по определенному предприятию. Я попытался написать, через find

Worksheets("1").Activate
Range("A1:B100").Find(What:="11123", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext).Select
Sheets("3").Cells(1, 1).Value = Selection.Row
Но столкнулся с проблемой. В случае если номер введен не правильно или такого не существует появляется ошибка. Можно ли как то это обойти, т.е. чтобы выдавало сообщение "Номер не найден"

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.11.2005 (Сб) 13:44

dim f as range
set f=Range("A1:B100").Find(What:="11123", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
if f is nothing then ...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Taranov_ivan
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 10.11.2005 (Чт) 7:07

Сообщение Taranov_ivan » 13.11.2005 (Вс) 7:37

Спасибо болщое GSerg за ответ.

Я правильно понимаю, если собрать все во едно?

Worksheets("1").Activate
dim f as range
set f=Range("A1:B100").Find(What:="11123", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
Sheets("3").Cells(1, 1).Value = f.Row
if f is nothing then ...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.11.2005 (Вс) 19:24

Нет.
Нафига проверять переменную после её использования?
Обычно проверяют до...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 46

    TopList