【问题标题】:Sum cell values from multiple workbooks with multiple worksheets - Macro将多个工作簿中的单元格值与多个工作表相加 - 宏
【发布时间】:2014-03-30 09:37:59
【问题描述】:
  • 我有 50 个工作簿。每个都有 3 个工作表。
  • 我在从单元格 A1 到 N1 的每个工作表中都有一个值。
  • 我想总结单个工作簿中的所有值(分别在 3 个工作表中)。 (即 sheet1 workbook1 的 A1 + sheet1 workbook2 的 A1 +.....+ sheet1 workbook50 的 A1 = sheet1 MacroWorkbook 的 A1。

同样地,sheet1 workbook1 的 B1 + sheet1 workbook2 的 B1 +.....+ sheet1 workbook50 的 B1 = sheet1 MacroWorkbook 的 B1。 3 张纸,比如 50 个工作簿。

我更喜欢打开文件位置而不是从目录中选择。


在不同论坛的帮助下,我尝试从 sheet1 的多个工作簿中获取总和:

Sub SUM_Workbooks()
    Dim FileNameXls As Variant
    Dim i As Integer
    Dim wb As Workbook
    FileNameXls = Application.GetOpenFilename(filefilter:="Excel Files, *.xl*", MultiSelect:=True)
    If Not IsArray(FileNameXls) Then Exit Sub
    Application.ScreenUpdating = False
    For i = LBound(FileNameXls) To UBound(FileNameXls)
        Set wb = Workbooks.Open(FileNameXls(i))
        wb.Sheets(1).Range("A1:N1").Copy
        ThisWorkbook.Sheets(1).Range("A1:N1").PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks:=True, Transpose:=False
        Application.CutCopyMode = False
        wb.Close SaveChanges:=False
        Next i
    Application.ScreenUpdating = True
End Sub

我想将此扩展为 3 张。非常感谢您的帮助,因为我不是 VBA 专家。谢谢!

【问题讨论】:

  • 我已经尝试从多个工作簿中计算出一张表的单元格总和。我想从 3 个工作表中得到总和。
  • 你想如何粘贴值?第一个工作簿的第一行,第二个工作簿的第二行等等?或者将所有工作簿 id 粘贴结果中的所有值相加到 A1:N1 中?
  • 我想将所有值相加并将结果粘贴到 A1:N1 中。

标签: vba excel


【解决方案1】:

如果您想对所有工作簿(来自每个工作表 A1:N1)的值求和并将结果粘贴到此工作簿的 A1:N1,请使用此:

Sub SUM_Workbooks()
    Dim FileNameXls, f
    Dim wb As Workbook, i As Integer

    FileNameXls = Application.GetOpenFilename(filefilter:="Excel Files, *.xl*", MultiSelect:=True)

    If Not IsArray(FileNameXls) Then Exit Sub

    Application.ScreenUpdating = False

    For Each f In FileNameXls
        Set wb = Workbooks.Open(f)
        For i = 1 To 3
            wb.Worksheets(i).Range("A1:N1").Copy
            ThisWorkbook.Sheets(i).Range("A1:N1").PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, SkipBlanks:=True, Transpose:=False
        Next i
        wb.Close SaveChanges:=False
    Next f

    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

【讨论】:

  • 谢谢!如何从工作表 2 和工作表 3 中获取值的总和。请帮忙。
  • 我的代码将每张表中的所有值相加:For Each ws In wb.Worksheets
  • 好的。很抱歉澄清我想要单独的表 2 和单独的表 3。
  • 我也希望在我的最终文件中包含 3 张纸。总结表 1 中的所有最终表,表 2 的总和分别(不一定在单独的表中)
  • 非常感谢您的帮助!我能够用这个最后的拼图完成我的工作。谢谢你:)
猜你喜欢
  • 2014-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-28
  • 2022-12-24
  • 2012-08-23
  • 2014-12-16
  • 1970-01-01
相关资源
最近更新 更多