将来自不同工作簿的特定工作表合并到工作表中
我有一本由6-7个不同的人编辑的练习册。 在表中的每个人都有计数,我正在寻找一种方法,我可以合并所有的表,并find总数的总和。 例如,
这是第一个工作簿中的表格,
AB c 10 15 10
在第二个工作簿中,
AB c 7 10 9
所有的工作簿都是相似的。 我想要最后的合并的每个工作簿中的所有值的总和,
AB c 17 25 19
我认为这样做的一个方法是把所有的Excel工作簿放到一个相同的文件夹,并使用下面的代码来合并它,然后使用macros来计算它。
Sub GetSheets() Path = "C:\Users\username\Downloads\New folder" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub
但由于某些原因,此代码正在执行而没有任何错误,但在合并的工作簿中不起作用。 它不合并其余工作簿的工作表。
有谁能告诉我我在这里犯的错误是什么?
还有什么替代方法来find合并的总和?
谢谢
假设你仍然想用DIR
(如果文件夹中还有其他文件,则需要input名称检查)
testing它在我的电脑,它的工作完美:
Sub SumWB() Dim Arr(2) As Long, MyWB As Workbook, fStr as String Const Folder = "C:\NewFolder\" fStr = Dir(Folder) While (file <> "") Set MyWB = Workbooks.Open(Folder & fStr, , True) Arr(0) = Arr(0) + MyWB.Sheets(1).Range("A1").Value Arr(1) = Arr(1) + MyWB.Sheets(1).Range("B1").Value Arr(2) = Arr(2) + MyWB.Sheets(1).Range("C1").Value MyWB.Close file = Dir Wend Debug.Print Arr(0) & " - " & Arr(1) & " - " & Arr(2) End Sub