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