- 我有 50 本练习册。每个有 3 个工作表。
- 我在单元格 A1 到 N1 的每个工作表中都有一个值。
- 我想总结一个工作簿中的所有值(分别在 3 个工作表中)。
(即sheet1工作簿1的A1+sheet1工作簿2的A1+.....+sheet1工作簿50的A1=sheet1宏工作簿的A1。
同样,sheet1工作簿1的B1+sheet1工作簿2的B1+.....+sheet1工作簿50的B1=sheet1宏工作簿的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 专家,因此非常感谢您的帮助。谢谢!
如果您想对所有工作簿(每个工作表中的值)求和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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)