在不同的工作簿中查找总和

我有六本练习册,全部完全相同。 每个工作簿在工作簿的第二张表格的A2,B2,C2单元格中都有一些值。 我想要一个统一的Excel工作表,它可以生成所有工作簿Sheet2的A2,B2,C2的总和。 我把所有六个工作簿放在一个新的文件夹中,并创build一个新的工作簿,并使用下面的代码,

Sub SumWB() Dim Arr(2) As Long, MyWB As Workbook, fStr As String Const Folder = "C:\Users\satsobek\Downloads\New folder\" fStr = Dir(Folder) While (file <> "") Set MyWB = Workbooks.Open(Folder & fStr, , True) Arr(0) = Arr(0) + MyWB.Sheets(2).Range("A2").Value Arr(1) = Arr(1) + MyWB.Sheets(2).Range("B2").Value Arr(2) = Arr(2) + MyWB.Sheets(2).Range("C2").Value MyWB.Close file = Dir Wend Debug.Print Arr(0) & " - " & Arr(1) & " - " & Arr(2) End Sub 

并想要初步检查输出是否产生总和。 但我只得到

 0-0-0 

作为输出。

任何人都可以帮助我debugging代码,以查找各种工作簿中sheet2的A2,B2和C2的总和吗?

问题在于如何定义要search的文件。

你设置fStr = Dir(Folder)然后你说While (file <> "")由于file没有被初始设置, While Loop将立即退出(因为file没有被设置,直到第一个循环 – 永远不会发生) 。

fStr所有引用更改为file ,它将工作。

 Sub SumWB() Dim Arr(2) As Long, MyWB As Workbook, fStr As String Const Folder = "C:\Users\satsobek\Downloads\New folder\" file = Dir(Folder) While (file <> "") If file <> "consol.xlsx" Then Set MyWB = Workbooks.Open(Folder & file, , True) Arr(0) = Arr(0) + MyWB.Sheets(2).Range("A2").Value Arr(1) = Arr(1) + MyWB.Sheets(2).Range("B2").Value Arr(2) = Arr(2) + MyWB.Sheets(2).Range("C2").Value MyWB.Close End If file = Dir Wend Debug.Print Arr(0) & " - " & Arr(1) & " - " & Arr(2) End Sub