Метод Range объекта листа не удалось при копировании динамического диапазона - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть цикл, охватывающий диапазон ячеек, и, если выполняется условие, я копирую соответствующие данные на один лист, а если он не выполняется, - на другой.У меня проблема при динамическом использовании диапазона для копирования.

Я пытался ссылаться на диапазон двумя разными способами, но получаю ту же ошибку

For i = 2 To lastRow
     Set found= WC.Range("O1:O" & LastInList).Find(SL.Range("G" & i))

    If Not (found Is Nothing) 
        SL.Range(Cells(i, 1), Cells(i, 3)).Copy Destination:=WC.Range("A" & WCEmptyRow) 'ERROR here
    Else
        'do something
    End If
Next i

Также пытался:

SL.Range("A" & i, "C" & i).Copy Destination:=WC.Range("A" & WCEmptyRow) ' ERROR here

Как мне ссылаться на ячейки в строке I, чтобы скопировать их?

1 Ответ

0 голосов
/ 19 февраля 2019

Что такое foundAH?Это не в коде.Убедитесь, что чек для If Not (foundAH Is Nothing).Чтобы избежать необъявленных переменных, следуйте Option Explicit из @PEH из комментариев - В редакторе VBA перейдите в Инструменты ›Параметры› Требовать объявления переменных

Кроме того, код падает в ошибка номер 1 в теге VBA в SO - явно не объявляется родительская рабочая таблица .См. Точки в исправленном коде:

For i = 2 To lastRow
    Set found= WC.Range("O1:O" & LastInList).Find(SL.Range("G" & i))

    If Not (found Is Nothing) 
        With SL
            .Range(.Cells(i, 1), .Cells(i, 3)).Copy Destination:=WC.Range("A" & WCEmptyRow)
        End With
    Else
        'do something
    End If
Next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...