需要汇总多个Excel文件所需的宏
问题描述:
我有多个结构完全相同的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
答
对于一个简单的汇总以下工作,对于更复杂的需求去这里: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
你写过什么代码?请告诉我们您的代码,以便我们可以为您提供帮助 – 2013-04-11 21:36:16
Hello Philip我已添加我的代码,感谢回复 – xyz 2013-04-12 14:27:05
这是很多代码。什么是不适合你的第一部分? – 2013-04-12 18:51:32