2013-04-11 59 views
1

我有多個結構完全相同的excel文件,並且位於一個文件夾中。需要彙總多個Excel文件所需的宏

每個Excel文件的數據開始於D4(多行數據,但所有行開始對後續d)

我需要一個宏觀採取從所有文件夾中的單獨的Excel文件中的數據,並創建一個單一的來自單獨的excel文件的所有數據的新excel文件,結構如下。

1)從的Excel數據文件之一上卷文件

2.)從的Excel數據文件2中彙總文件

3附加數據下方從第一excel文件開始於A1。 )重複該文件夾中的所有excel文件。

感謝

編輯 我發現這個(我很抱歉,我不記得在哪裏,我記得它不工作) 我還不是很瞭解Excel和VBA的(我主要是我在PHP工作) ,我覺得我很想提出很多幫助,以獲得我需要的東西,我爲此道歉。

我做了兩個簡單的excel文件,並在每個文件中添加了一行數據,然後在名爲Rollup的excel文件中運行宏。 我認爲這個代碼的問題在於,它在Rollup excel文件中工作,光標移動到相應的行,就好像它附加了兩個文件,但沒有數據顯示。

Sub extract() 
Dim a, b, c, d, n, x As Integer 
Dim f As String 
Cells(2, 1).Select 
f = Dir("C:\" & "*.xls") 
Do While Len(f) > 0 
ActiveCell.Formula = f 
ActiveCell.Offset(1, 0).Select 
f = Dir() 
n = n + 1 
Loop 
x = Cells(Rows.Count, 1).End(xlUp).Row 
d = 2 
For a = 2 To x 
Cells(d, 2) = Cells(a, 1) 
For c = 1 To 20 
b = 1 
Cells(1, 1) = "='c:\[" & Cells(a, 1) & "]sheet1'!" & Chr(b + 64) & c 
If Cells(1, 1) = "0" Then 
Exit For 
Else 
For b = 3 To 6 
Cells(d, b) = "='c:\[" & Cells(a, 1) & "]sheet1'!" & Chr(b + 64) & c 
Next b 
End If 
d = d + 1 
Next c 
d = d + 1 
Next a 
End Sub 
+3

你寫過什麼代碼?請告訴我們您的代碼,以便我們可以爲您提供幫助 – 2013-04-11 21:36:16

+0

Hello Philip我已添加我的代碼,感謝回覆 – xyz 2013-04-12 14:27:05

+0

這是很多代碼。什麼是不適合你的第一部分? – 2013-04-12 18:51:32

回答

0

對於一個簡單的彙總以下工作,對於更復雜的需求去這裏:http://msdn.microsoft.com/en-us/library/office/cc837974%28v=office.12%29.aspx

Sub test() 
    Dim myFile As String, sh As Worksheet, myRange As Range 
    Const MyPath = "C:\My path\" ' to be modified 
    Workbooks.Add 1 ' Add a new workbook 
    Set sh = ActiveWorkbook.ActiveSheet 
    myFile = Dir(MyPath & "*.xls") 
    Do While myFile <> "" 
    Workbooks.Open MyPath & myFile 
    Rows(1).Copy sh.Rows(1) 
    Set myRange = ActiveSheet.UsedRange 
    Set myRange = myRange.Offset(4).Resize(myRange.Rows.Count - 1) '(4) is how many rows to ignore befor coping data 
    myRange.Copy sh.Range("A65").End(xlUp).Offset(1) 
    Workbooks(myFile).Close False 
    myFile = Dir 
    Loop 
End Sub