Копировать диапазон между листами в последнюю строку - PullRequest
0 голосов
/ 21 июня 2020

Ищете простые, элегантные решения, используя диапазон в его текущей форме для добавления в последнюю строку другого рабочего листа.

Диапазон:

        Sheets("conf_9").Columns(5).Copy Destination:=Sheets("Rec_9").Columns(9)
        Sheets("conf_9").Columns(6).Copy Destination:=Sheets("Rec_9").Columns(10)
        Sheets("conf_9").Columns(7).Copy Destination:=Sheets("Rec_9").Columns(7)
        Sheets("conf_9").Columns(8).Copy Destination:=Sheets("Rec_9").Columns(8)
        Sheets("conf_9").Columns(12).Copy Destination:=Sheets("Rec_9").Columns(6)

Несколько ответов на аналогичный вопрос кажутся слишком сложными и несовместимо с использованием Columns - да, я новичок в VBA. Например, вставка синтаксиса выражения Columns(number) & last row отклоняется.

Большое спасибо.

1 Ответ

0 голосов
/ 21 июня 2020

Попробуйте следующий код, пожалуйста. Необязательно копировать целые столбцы. Код вычисляет последнюю заполненную строку листа для копирования столбца и первую пустую строку целевого столбца листа:

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» в первой строке кода копирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...