在不同的工作簿中查找总和
我有六本练习册,全部完全相同。 每个工作簿在工作簿的第二张表格的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