我有一个由6-7个不同的人编辑的工作簿。有一些计数是表格中的每个人,我正在寻找一种方法,我可以合并所有的表格,并找到总计数的总和。例如,
这是第一个工作簿中的工作表,
A B c
10 15 10
第二个工作簿中的工作表,
A B c
7 10 9
所有工作簿都类似。我希望最终的合并版本具有每个工作簿的工作表中所有值的总和,
A B c
17 25 19
我认为一种方法是将所有excel工作簿放入同一个文件夹并使用以下代码将其合并,然后使用宏来计算它。
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
但由于某种原因,此代码执行时没有任何错误,但在整合的工作簿中没有任何影响。它没有合并其余工作簿的表格。
有谁能告诉我我在这里犯的错误是什么?
还有其他方法可以找到合并金额吗?
感谢
答案 0 :(得分:1)
假设您仍然想使用DIR
(如果文件夹中还有其他文件,则需要输入检查名称)
在我的电脑上测试它,它完美地工作:
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
答案 1 :(得分:0)
如果您在与要合并的工作表位于同一路径(文件夹)的excel工作表中执行vba代码,则会发生这种情况。 尝试在新的Excel工作簿中执行vba。