假设我有n张。我的第二张纸叫做" Calc",这是我进行求和/计算的地方。
我想将所有A1,A2 ... A1000,从纸张3(Calc后的纸张)添加到Z1,Z2 ... Z1000到纸张n。
这些是进口纸张。我不知道这些床单的名称,我不允许更改它们。
可以随时移除或添加纸张3至纸张n之间和之中的任何纸张。
首先我考虑尝试= SUM(' '!A20),但它会自动更改' '到第一页和最后一页。
当我删除最后一张纸时,它会给我错误并且计算失败。我正在考虑做间接的,但这将非常繁琐,因为我无法拖动将表格3中的单元格更改为表格n。
例如: when
当我将它们拖到棋盘上时,C4不会改变。
还有其他想法吗?
答案 0 :(得分:0)
让我猜一下:
Range("A1:Z1000")
都有数据; Range("A1:Z1000")
求和(" Calc")。范围(" A1:Z1000"); 每张工作表都包含A1:Z1000
中的数据。
总和" Calc"片。
若是,请尝试:
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
希望这会对你有所帮助。