Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Главное меню

Ожибка при поиске

Автор dimkir, 27.04.2011, 17:44

« назад - далее »

dimkir

Задачка такая:
на 1-м листе из ячеек беру число (артикул).
на втором листе ищу ячейку, в которой оно содержится, и из соседней ячейки беру данные (цену)
и копирую на 1-й лист в строку с артикулом.
перебираю ячейки на первом листе с помощью цикла.

если на втором листе данные не находятся, то 1 раз "On Error GoTo 11111" проходит,
а потом программа останавливается на ошибке 91.

вот фрагмент, на котором всё останавливается.

On Error GoTo 11111
   
    Cells.Find(What:=y, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate


Как написать логическую функцию, чтобы при условии ненахождения данных
перескакивать в конец цикла или загнать в память например "-"  ?

Andrey Lenets

Нужно делать проверку на отсутствие искомых данных!!!
правильно будет так:
On Error GoTo 11111
    dim f as variant
    set f=Cells.Find(What:=y, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If not f is nothing then f.Activate


удачи!  8)

dimkir

Цитата: Andrey Lenets от 27.04.2011, 23:38
Нужно делать проверку на отсутствие искомых данных!!!
правильно будет так...

Спасибо.
Именно это и нужно было!