2016-11-18 4 views
0

Я пытаюсь создать макрос, который извлекает данные в соответствии с поиском, например, извлекает смежную ячейку той, которая содержит «Дата», но почему-то превосходит не соответствует результат, который я ищу, я не знаю, связано ли это с тем, что эта ячейка защищена паролем. Вот мой код:Excel VBA не нашел ячейку

SummarySheet.Range("C" & NRow).Value = WorkBk.Worksheets(2).Cells.Find("Fecha de ", After:=Range("I110")).Offset(0, 0) 

И даже когда я говорю преуспеть это выглядит после I110, то первый результат на мобильный AU55 .. (Смещение 0,0 намеренным, чтобы увидеть, что это найти)

Может ли кто-нибудь помочь.

+0

Вы не указали, на каком листе 'After' просматривается, поэтому он использует текущий активный лист. Измените на 'After: = WorkBk.Worksheets (2) .Range (" I110 ") .....'. Кроме того, будьте осторожны с использованием 'Worksheets (2)' - если вы измените свои листы, второй лист будет другим, поэтому лучше всего использовать имя листа. –

ответ

2

попробовать

With WorkBk.Worksheets(2) 
    SummarySheet.Range("C" & NRow).Value = .Cells.Find("Fecha de ", After:=.Range("I110"), LookIn:=xlValues, lookat:=xlWhole, matchacse:=False).Offset(0, 0) 
End With 

и есть:

  • Range("I110") принадлежат к одной и той же книги и листа из Cells вы ищете через

  • все соответствующие Find() (LookAt, LookIn , ..) аргументы явно указаны, иначе они предполагаются с их последней настройкой даже из Excel UI

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