Функция смещения VBA, дающая синтаксическую ошибку

Выполнение последних бит VBA на макросе. Этот макрос намерен через Inputbox с помощью FindString, найти строку, скопировать ее на другой рабочий лист, вставить эту строку в первую пустую строку и удалить строку на исходном листе.

If Not Rng Is Nothing Then Rng.EntireRow.Copy Worksheets("ScrapLogboek").Cells(Rows.Count, "A").End(xlUp).Offset(1, -1) Worksheets("ScrapLogboek").Range("A2").PasteSpecial Rng.EntireRow.Delete Else MsgBox ("Niks gescrapt. Check of het B-nummer correct is.") End If End With MsgBox ("Logboek gescrapt.") End If End Sub 

Теперь я продолжаю получать синфаксическую ошибку в функции Offset. Что я делаю не так? Как сказано в комментариях; Рабочие листы («ScrapLogboek»). Ячейки (Rows.Count, «A»). End (xlUp) .Offset (1, -1). По какой-то причине эта линия дает мне дерьмо.

Вы находитесь в столбце A , поэтому вы не можете смещать минус один столбец, потому что слева нет никого другого !

Попробуйте свой код с помощью Worksheets("ScrapLogboek").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) и это сработает! 😉

И ваш код будет всегда вставляться на A2, что, вероятно, не является целью, так что вот исправленная версия:

 If Not Rng Is Nothing Then Rng.EntireRow.Copy Worksheets("ScrapLogboek").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial Rng.EntireRow.Delete Else MsgBox ("Niks gescrapt. Check of het B-nummer correct is.") End If End With MsgBox ("Logboek gescrapt.") End If End Sub 
Давайте будем гением компьютера.