Excel скопировать данные из нескольких листов - PullRequest
0 голосов
/ 26 июля 2011

Есть ли способ скопировать диапазоны ячеек из нескольких листов в другой лист?Например:
Лист1
Яблоко
Виноград
Персик
Вишня
Лист2
Апельсин
Груша
Банан
Черника

Мне нужен результат как

Лист3
Яблоко
Виноград
Персик
Вишня
Апельсин
Груша
Банан
Черника

Предположим, у меня есть данные в столбце A на листах 1 и 2, и мне нужно отобразить объединенные результаты в столбце A на листе 3,В основном мне нужно отобразить все элементы из листов 1 и 2 в листе 3 в одном столбце.

Есть идеи?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Поскольку ваши данные находятся в одних и тех же столбцах, я предполагаю, что все, что вам действительно нужно, это скопировать и вставить каждый лист в один мастер-лист.Эту функцию VBA я обнаружил некоторое время назад в Интернете (очень жаль оригинальному создателю, я хотел бы знать, кто это, поэтому я могу поверить ему).Он объединит все листы в один лист под названием «Мастер».Экономит много времени!Я надеюсь, что это поможет или приблизит вас к тому месту, где вы должны быть.

Sub CreateMasterSheet()

Application.ScreenUpdating = False
Dim wrk As Workbook
Dim sheet As Worksheet
Dim masterSheet As Worksheet
Dim rng As range

Set wrk = ActiveWorkbook

For Each sheet In wrk.Worksheets
    If sheet.Name = "Master" Then
        MsgBox "There is a worksheet called as 'Master'." & vbCrLf & _
                "Remove or rename this worksheet.", vbOKOnly + vbExclamation, "Error"
        Exit Sub
    End If
Next sheet

Set masterSheet = wrk.Worksheets.Add(After:=wrk.Worksheets(wrk.Worksheets.count))
masterSheet.Name = "Master"

For Each sheet In wrk.Worksheets
    If sheet.Index = wrk.Worksheets.count Then
        Exit For
    End If
    Set rng = sheet.range(sheet.cells(1, 1), sheet.cells(65536, 1).End(xlUp).Resize(, 256))
        masterSheet.cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.count, rng.Columns.count).Value = rng.Value
Next sheet

masterSheet.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
0 голосов
/ 26 июля 2011

Вы не упомянули свою версию Excel. В 2003 и 2010 годах вы можете сделать это с помощью Data, Consolidate. См. Справку вашей версии для процедуры.

...