从下一张纸添加到最终纸张

时间:2015-06-25 17:30:18

标签: excel

假设我有n张。我的第二张纸叫做" Calc",这是我进行求和/计算的地方。

我想将所有A1,A2 ... A1000,从纸张3(Calc后的纸张)添加到Z1,Z2 ... Z1000到纸张n。

这些是进口纸张。我不知道这些床单的名称,我不允许更改它们。

可以随时移除或添加纸张3至纸张n之间和之中的任何纸张。

首先我考虑尝试= SUM(' '!A20),但它会自动更改' '到第一页和最后一页。

当我删除最后一张纸时,它会给我错误并且计算失败。我正在考虑做间接的,但这将非常繁琐,因为我无法拖动将表格3中的单元格更改为表格n。

例如: when 当我将它们拖到棋盘上时,C4不会改变。

还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

让我猜一下:

  1. 你有很多张;
  2. 您可以删除或添加新工作表;
  3. 每张表格中Range("A1:Z1000")都有数据;
  4. 您希望在工作表中对每张工作表Range("A1:Z1000")求和(" Calc")。范​​围(" A1:Z1000");
  5. 每张工作表都包含A1:Z1000中的数据。 enter image description here

    总和" Calc"片。 enter image description here

    若是,请尝试:

    Sub SumEverySheet()
    
    Dim Sh As Worksheet
    Dim i, j As Integer
    Dim cellValue
    
    For Each Sh In Worksheets
        If Sh.Name <> "Sheet1" And Sh.Name <> "Calc" Then
            ' row: 1 to 1000
            For i = 1 To 1000
                ' A - Z (1 - 26)
                For j = 1 To 26
                    cellValue = Sheets("Calc").Cells(i, j)
                    sheetValue = Sh.Cells(i, j)
                    Sheets("Calc").Cells(i, j) = sheetValue + cellValue
                Next j
            Next i
        End If
    Next Sh
    End Sub
    

    将此宏放入Workbook_AfterSave可以使其在保存后自动运行。

    Private Sub Workbook_AfterSave(ByVal Success As Boolean)
        MsgBox "after save"
        Call SumEverySheet
    End Sub
    

    希望这会对你有所帮助。