【发布时间】: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 中。