Вы можете использовать этот VBA код:
Sub copy_all()
'
' copy all sheets to D
'
Dim rowCount As Integer
Sheets("D").Select
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete
Sheets("A").Select
Range("A2").Select
Range(Selection, Selection.SpecialCells(xlLastCell)).Select
Selection.Copy
Sheets("D").Select
Range("A2").Select
ActiveSheet.Paste
Sheets("B").Select
Range("A2").Select
Range(Selection, Selection.SpecialCells(xlLastCell)).Select
Selection.Copy
Sheets("D").Select
rowCount = Cells(Rows.Count, 1).End(xlUp).Row 'column A has a value of 1
Cells(rowCount + 1, 1).Select
ActiveSheet.Paste
Sheets("C").Select
Range("A2").Select
Range(Selection, Selection.SpecialCells(xlLastCell)).Select
Selection.Copy
Sheets("D").Select
rowCount = Cells(Rows.Count, 1).End(xlUp).Row 'column A has a value of 1
Cells(rowCount + 1, 1).Select
ActiveSheet.Paste
End Sub
Каждый раз, когда вы запустите этот макрос, это удалив все содержимое листа D
, кроме заголовков столбцов и копирования листов A
, B
и C
один после другой к листу D
.
Он имеет 2 основные предположения, которые могут быть изменены легко:
- Название листов является
A
, B
, C
и D
. Я думаю, это неверно, поэтому просто замените все строки, как Sheets("A").Select
, на Sheets("NameOfSheet").Select
.
- Данные во всех листах начинаются в ячейке
A2
. Если нет, просто замените все строки, как Range("A2").Select
, правильной самой верхней левой ячейкой данных.
одно предположение не может быть легко изменена - что данные на всех листах выглядят точно так же (одинаковое количество столбцов, в том же порядке).
Попробуйте это и скажите мне, если он вам помог;)
Как данные из всех листов должны быть orgenized в листовом D? – EBH
Просто нужно складывать на eachother и отображать весь контент, как на листе A, B & C, только друг над другом – user3151956