Option Explicit
Sub Macro70()
Dim wb As Workbook
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim sheets_Count As Integer
Dim sheets_Name() As String
Dim i As Integer
sheets_Count = Sheets.Count
ReDim sheets_Name(0 To sheets_Count - 1)
For i = 1 To sheets_Count
sheets_Name(i - 1) = "'" & ActiveWorkbook.Sheets(i).Name & "'!R1C1:R17C2"
Next i
Set wb = ThisWorkbook
Set ws2 = wb.Sheets.Add()
With ws2
.Range("A1").Consolidate sheets_Name, xlSum, True, True, False
End With
End Sub
Sub Macro71()
Dim wb As Workbook
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim sheets_Count As Integer
Dim sheets_Name() As String
Dim i As Integer
sheets_Count = Sheets.Count
ReDim sheets_Name(0 To sheets_Count - 1)
For i = 1 To sheets_Count
sheets_Name(i - 1) = "'" & ActiveWorkbook.Sheets(i).Name & "'!R24C1:R35C2"
Next i
Set wb = ThisWorkbook
Set ws2 = wb.Sheets.Add()
With ws2
.Range("A24").Consolidate sheets_Name, xlSum, True, True, False
End With
End Sub
Sub Macro72()
Dim wb As Workbook
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim sheets_Count As Integer
Dim sheets_Name() As String
Dim i As Integer
sheets_Count = Sheets.Count
ReDim sheets_Name(0 To sheets_Count - 1)
For i = 1 To sheets_Count
sheets_Name(i - 1) = "'" & ActiveWorkbook.Sheets(i).Name & "'!R39C1:R50C2"
Next i
Set wb = ThisWorkbook
Set ws2 = wb.Sheets.Add()
With ws2
.Range("A39").Consolidate sheets_Name, xlSum, True, True, False
End With
End Sub
这对我来说非常合适,但我必须说的最后一个问题是它会产生新的表格。我可以为所有这些表收集相同的数据表。我尝试将ws2.Name =“合并”为所有三个,但它显示错误。我希望71和72可以放入同一张表中,因为70可以放入。并且非常感谢帮助我。
我觉得你需要更像这样的东西(未经测试)
sheets_Count = Sheets.Count
ReDim sheets_Name(0 to sheets_Count-1)
For i = 1 To sheets_Count
sheets_Name(i-1) = "'" & ActiveWorkbook.Sheets(i).Name & "'!R10C1:R26C2"
Next i
Set wb = ThisWorkbook
Set ws2 = wb.Sheets.Add()
With ws2
.Range("A1").Consolidate sheets_Name, xlSum, True, True, False
End With
看到:
https://docs.microsoft.com/en-us/office/vba/api/excel.range.consolidate
以下是该链接的示例:
Worksheets("Sheet1").Range("A1").Consolidate _
Sources:=Array("Sheet2!R1C1:R37C6", "Sheet3!R1C1:R37C6"), _
Function:=xlSum
编辑 - 如果你想从每张表中添加多个范围,你可以试试这个:
Dim n
sheets_Count = Sheets.Count
ReDim sheets_Name(0 To (sheets_Count * 2) - 1)
n = 0
For i = 1 To sheets_Count
sheets_Name(n) = "'" & ActiveWorkbook.Sheets(i).Name & "'!R10C1:R26C2"
sheets_Name(n+1) = "'" & ActiveWorkbook.Sheets(i).Name & "'!R40C1:R50C2"
n = n + 2
Next i