Найдя последнюю заполненную ячейку в столбце A, вы можете быть более точным в том, что вы копируете.
Это копирует содержимое столбца A на листе Src в колонке B из TGT листа:
Sub CopyOneColumnToAnother()
Dim wb As Workbook
Dim src As Worksheet
Dim tgt As Worksheet
Dim lastRow As Long
Set wb = ThisWorkbook
Set src = wb.Sheets("Sheet5")
Set tgt = wb.Sheets("Sheet6")
lastRow = src.Range("A" & src.Rows.Count).End(xlUp).Row
tgt.Range("B2:B" & lastRow).Value = src.Range("A2:A" & lastRow).Value
End Sub
Причина вы получаете сообщение об ошибке, потому что ваши диапазоны не имеют действительные конечные точки. Range ([firstcell]:[lastcell])
- правильный синтаксис, поэтому вам нужно добавить строку для последней ячейки как в исходном, так и в целевом диапазонах.
Обратите внимание, что даже если ваш код работает, он не будет делать желаемого. Вы устанавливаете столбец A равным столбцу B. Вам нужно перевернуть левую и правую стороны вашего заявления.
Вы также заявляете, что хотите скопировать из A в B, но ваш код пытается скопировать из B в A. –