#excel #vba #range #copy-paste
Вопрос:
Я пытаюсь скопировать ячейки, начиная с C4 до D123, на одном листе и вставить их в новый лист, начиная со столбца D13. Диапазон динамичен, поэтому он не всегда заканчивается на D123, но всегда должен начинаться с C4. Моя проблема сейчас в том, что, похоже, я копирую и вставляю только 9 ячеек вместо всего, что было в C4:D123 в одном экземпляре. Лист, с которого я копирую, выглядит так:
Dim ws As Worksheet
Dim targetws As Worksheet
Dim LastRow As Long
Dim TransactionColumn As Variant
TransactionColumn = "D"
LastRow = Cells(Rows.Count, TransactionColumn).End(xlUp).Row
Set targetws = Sheets("targetwsname")
For Each ws In ActiveWorkbook.Worksheets
If ws.Name Like "*" amp; " - Pay" amp; "*" Then
ws.Range("C4:D" amp; Range("D" amp; Rows.Count).End(xlUp).Row).Copy Destination:=targetws.Range("D" amp; Rows.Count).End(xlUp).Offset(1)
End If
Next ws
Конец Суб
Комментарии:
1.
Range("D" amp; Rows.Count).End(xlUp).Row
у него нет родительского листа, поэтому он использует активную таблицу. Вы, наверное, хотите:ws.Range("D" amp; Rows.Count).End(xlUp).Row
2. БОЛЬШОЕ ТЕБЕ СПАСИБО, СКОТТ!! Это все исправило :’) Я не могу поверить, что пропустил это… Еще раз спасибо вам!