Excel 将不同工作簿中的特定工作表合并到一张工作表中

Excel 将不同工作簿中的特定工作表合并到一张工作表中,excel,vba,Excel,Vba,我有一个工作簿,由6-7个不同的人编辑。有计数给每个人在表中,我正在寻找一种方法,我可以合并所有的表,并找到总计数的总和。例如 这是第一份工作手册中的工作表 A B c 10 15 10 A B c 7 10 9 A B c 17 25 19 第二份工作手册中的工作表 A B c

我有一个工作簿,由6-7个不同的人编辑。有计数给每个人在表中,我正在寻找一种方法,我可以合并所有的表,并找到总计数的总和。例如

这是第一份工作手册中的工作表

A        B          c
10       15         10
A        B          c
7       10          9
A        B          c
17       25         19
第二份工作手册中的工作表

A        B          c
10       15         10
A        B          c
7       10          9
A        B          c
17       25         19
所有的作业本都是类似的。我希望最终合并的工作簿包含每个工作簿中各页中所有值的总和

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
Sub-GetSheets()
Path=“C:\Users\username\Downloads\New folder”
Filename=Dir(路径&“*.xlsx”)
文件名“”时执行此操作
工作簿。打开文件名:=路径和文件名,只读:=真
对于ActiveWorkbook.Sheets中的每个工作表
Sheet.Copy After:=此工作簿.Sheets(1)
下一页
工作簿(文件名)。关闭
Filename=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
Sub-SumWB()
Dim Arr(2)等长,MyWB作为工作簿,fStr作为字符串
Const Folder=“C:\NewFolder\”
fStr=Dir(文件夹)
While(文件“”)
设置MyWB=Workbooks.Open(文件夹&fStr,True)
Arr(0)=Arr(0)+MyWB.表(1).范围(“A1”).值
Arr(1)=Arr(1)+MyWB.表(1).范围(“B1”).值
Arr(2)=Arr(2)+MyWB.表(1).范围(“C1”).值
MyWB.关闭
file=Dir
温德
调试。打印Arr(0)&“-”和Arr(1)&“-”和Arr(2)
端接头

如果在excel工作表中执行vba代码,该工作表与要合并的工作表位于同一路径(文件夹)中,则会发生这种情况。
尝试在新的excel工作簿中执行vba。

此处的工作表(1)表示excel文件中的第一个工作表?没错。。。但是如果需要
Sheets(1)
>
Sheets(“Sheet1”)