Попробуйте следующий код, пожалуйста. Необязательно копировать целые столбцы. Код вычисляет последнюю заполненную строку листа для копирования столбца и первую пустую строку целевого столбца листа:
Sub AppendToOtherSheet()
Dim shC As Worksheet, wsR As Worksheet, lastRowC As Long, lastRowR As Long
Set shC = Sheets("conf_9")
Set wsR = Sheets("Rec_9")
lastRowC = shC.Range("E" & Rows.Count).End(xlUp).row
lastRowR = wsR.Range("I" & Rows.Count).End(xlUp).row + 1
shC.Range("E2:E" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 9)
shC.Range("F2:F" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 10)
shC.Range("G2:G" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 7)
shC.Range("H2:H" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 8)
shC.Range("L2:L" & lastRowC).Copy Destination:=wsR.Cells(lastRowR, 6)
End Sub
Приведенный выше код предполагает, что все столбцы имеют одинаковое количество строк, а лист, из которого копируются столбцы, имеет заголовки столбцов.
Если в обсуждаемых столбцах не одинаковое количество строк, lastRowC
и lastRowR
должны быть рассчитаны для каждого столбца, который будет скопирован. Если заголовков столбцов нет, копируемый диапазон будет начинаться (например) с «E1» вместо «E2» в первой строке кода копирования.