Консолидация данных из нескольких листов в один лист - PullRequest
0 голосов
/ 13 марта 2019

У меня проблемы с написанием макроса, который может объединить определенный диапазон данных R10C1: R26C2 из нескольких листов в активной книге, так как мне нужно написать макрос физически, скажем, 14 листов, как вы можете видеть из примера.Есть ли способ, где макрос может выбрать любое количество листов в активной рабочей книге в этом диапазоне данных и объединить данные (мне нужно суммировать данные в диапазоне данных).А также мне нужно вставить одну и ту же формулу 3 раза, чтобы убедиться, что заголовки таблиц (верхняя строка) и левой строки копируются правильно.Пожалуйста, помогите мне, любая помощь будет высоко ценится.

this is the data set

Sub Macro15()    
    Sheets.Add

    ActiveSheet.Select
    Range("A1").Select

    Selection.Consolidate Sources:=Array("Sheet4!R10C1:R26C2", "Sheet4 (2)!R10C1:R26C2", "Sheet4 (3)!R10C1:R26C2", "Sheet4 (4)!R10C1:R26C2", "Sheet4 (5)!R10C1:R26C2", "Sheet4 (6)!R10C1:R26C2", "Sheet4 (7)!R10C1:R26C2", "Sheet4 (8)!R10C1:R26C2", "Sheet4 (9)!R10C1:R26C2", "Sheet4 (10)!R10C1:R26C2", "Sheet4 (11)!R10C1:R26C2", "Sheet4 (12)!R10C1:R26C2", "Sheet4 (13)!R10C1:R26C2", "Sheet4 (14)!R10C1:R26C2"), _
    Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False

    Selection.Consolidate Sources:=Array("Sheet4!R10C1:R26C2", "Sheet4 (2)!R10C1:R26C2", "Sheet4 (3)!R10C1:R26C2", "Sheet4 (4)!R10C1:R26C2", "Sheet4 (5)!R10C1:R26C2", "Sheet4 (6)!R10C1:R26C2", "Sheet4 (7)!R10C1:R26C2", "Sheet4 (8)!R10C1:R26C2", "Sheet4 (9)!R10C1:R26C2", "Sheet4 (10)!R10C1:R26C2", "Sheet4 (11)!R10C1:R26C2", "Sheet4 (12)!R10C1:R26C2", "Sheet4 (13)!R10C1:R26C2", "Sheet4 (14)!R10C1:R26C2"), _
    Function:=xlSum, TopRow:=True, LeftColumn:=False, CreateLinks:=False

    Selection.Consolidate Sources:=Array("Sheet4!R10C1:R26C2", "Sheet4 (2)!R10C1:R26C2", "Sheet4 (3)!R10C1:R26C2", "Sheet4 (4)!R10C1:R26C2", "Sheet4 (5)!R10C1:R26C2", "Sheet4 (6)!R10C1:R26C2", "Sheet4 (7)!R10C1:R26C2", "Sheet4 (8)!R10C1:R26C2", "Sheet4 (9)!R10C1:R26C2", "Sheet4 (10)!R10C1:R26C2", "Sheet4 (11)!R10C1:R26C2", "Sheet4 (12)!R10C1:R26C2", "Sheet4 (13)!R10C1:R26C2", "Sheet4 (14)!R10C1:R26C2"), _
    Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False

    ActiveWindow.SmallScroll Down:=-228
    Columns("A:A").ColumnWidth = 23.88
    Columns("A:A").ColumnWidth = 41.25
    Columns("A:A").ColumnWidth = 47.88
    Columns("B:B").ColumnWidth = 16.5
End Sub

1 Ответ

0 голосов
/ 13 марта 2019

Я постараюсь ответить здесь, но, пожалуйста, заполните пробелы для вашей «пасты» ask .

Option Explicit

Sub Macro15()

Dim wb As Workbook
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim arrRange()

Set wb = ThisWorkbook
Set ws = wb.ActiveSheet

arrRange = Array("Sheet4!R10C1:R26C2", "Sheet4 (2)!R10C1:R26C2", "Sheet4 (3)!R10C1:R26C2", _
"Sheet4 (4)!R10C1:R26C2", "Sheet4 (5)!R10C1:R26C2", "Sheet4 (6)!R10C1:R26C2", "Sheet4 (7)!R10C1:R26C2", _
"Sheet4 (8)!R10C1:R26C2", "Sheet4 (9)!R10C1:R26C2", "Sheet4 (10)!R10C1:R26C2", "Sheet4 (11)!R10C1:R26C2", _
"Sheet4 (12)!R10C1:R26C2", "Sheet4 (13)!R10C1:R26C2", "Sheet4 (14)!R10C1:R26C2")

Set ws2 = wb.Sheets.Add

With ws2
    .Range("A1").Consolidate arrRange, xlSum, True, True, False
End With

Application.ActiveWindow.SmallScroll Down:=-228
ws.Columns("A:A").ColumnWidth = 23.88
ws.Columns("A:A").ColumnWidth = 41.25
ws.Columns("A:A").ColumnWidth = 47.88
ws.Columns("B:B").ColumnWidth = 16.5

End Sub
...