2015-11-12 101 views
1

我有一個單獨的工作簿,由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 

但出於某種原因沒有任何錯誤是越來越執行該代碼,但在合併工作簿沒有任何影響。它不合並剩餘工作簿的工作表。

有人可以告訴我我在這裏犯的錯誤是什麼?

還有什麼替代方法來找到合併總和?

感謝

回答

1

Asuming你還願意去與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 
+0

這裏表格(1)表示excel文件中的第一張表格? –

+0

多數民衆贊成是正確的...但你可以替換它與工作表名稱,如果你想'表(1)'>>'工作表(「Sheet1」)' –

相關問題