vba - скопировать и вставить последний n непустой столбец в следующий пустой столбец - на нескольких листах одинакового формата

  • У меня 4 листа одинакового формата (одинаковое количество столбцов с разными данными).
  • На каждом листе я хотел бы скопировать 6 последних непустых столбцов и вставить их в следующие 6 пустых столбцов.
  • это должно быть сделано на всех 4 листах одновременно (т.е. не запускать макрос лист за листом).

Я нашел несколько частей ответа, но я изо всех сил пытаюсь соединить их (у меня нет знаний в VBA).

Спасибо большое

1 ответ

Решение

Этот код копирует последнюю непустую строку (6 столбцов) и вставляет их в следующую пустую строку (6 столбцов). Однако этот код работает только в том случае, если имена ваших листов имеют номера от 1 до 4 в конце. (Не забудьте изменить имя листа в коде, если ваши имена листов не являются "sheet1", "sheet2", "sheet3" и "sheet4"). Надеюсь, это поможет вам или другим (:

Sub A()
Dim count As Integer
Dim sheetname As String

sheetname = sheet

For x = 1 To 4

sheetname = "sheet" & x

Worksheets(sheetname).Activate

count = 1

Do Until ThisWorkbook.Sheets(sheetname).Cells(count, 1).Value = ""

  count = count + 1

Loop


ThisWorkbook.Sheets(sheetname).Cells(count - 1, 1).Select


ActiveCell.Resize(, 6).Copy

ActiveCell.Offset(1, 0).PasteSpecial xlPasteValues

Next x

End Sub
Другие вопросы по тегам