2013-07-12 2 views
0

Я средний пользователь VBA и не могу понять, почему я получаю сообщение об ошибке.Объектная переменная не установлена ​​ошибка

Вот код:

Set cell = AA.Sheets(sc).Columns("E").Find(Name, LookAt:=xlWhole) 
If Not cell Is Nothing Then 
    FirstAddress = cell.Address 
    Do 
     s = Application.WorksheetFunction.Match(AA.Sheets(av).Rows(3).Find(AA.Sheets(sc).Range("F" & cell.Row)), AA.Sheets(av).Range("A3:NC3"), 0) 
     p = Application.WorksheetFunction.Match(AA.Sheets(av).Rows(3).Find(AA.Sheets(sc).Range("G" & cell.Row)), AA.Sheets(av).Range("A3:NC3"), 0) 
     Set cell = AA.Sheets(sc).Columns("E").FindNext(cell) 
    Loop While cell.Address <> FirstAddress 'ERROR ON THIS LINE 
End If 
Set cell = Nothing 

Я получаю переменную объекта или переменная блока не установлена ​​ошибка. после первого желоба «клетка» возвращает «Ничто», хотя должно быть еще 2 прохода. Если я удалю строки 's =' и 'p =', он будет правильно закончен. Мне нужны те, что я делаю.

Как я могу это исправить? Благодаря!

+1

Ошибка означает, что метод FindNext на предыдущей строке не нашел подходящей ячейки. Трудно помочь вам больше, не видя окружающего кода и без объяснения его содержимого. –

+0

Это единственный код, который относится к ошибке. Ничто раньше не изменит ситуацию. Как я сказал в OP, если я должен удалить две строки перед ошибкой и поместить код, он найдет все три экземпляра. Это когда я пытаюсь получить ошибки «p» и «s». –

ответ

0

У вас есть эта ошибка, потому что строка 's' и 'p' использует объект «Найти» Excel. Существует только один экземпляр «Найти» для приложения. Вы инициализируете его на 1-й строке, а затем используете «FindNext». Это работает только в том случае, если вы не используете объект «Найти» между ними.

+0

ok ... это имеет смысл. Я посмотрю, могу ли я настроить код без использования функции «Найти». Благодаря! –

+1

, пожалуйста, поддержите/принимайте, если это нормально. Спасибо –

+0

не может повышать (недостаточно rep) ... Я просто использовал цикл вместо этого, и он работает как шарм! :) –

Смежные вопросы