|
我在工作中也遇到过这种情况,已经有了一个解决方案。用VBA解决。我的例子是工作的数据,不方便放在这里,我说一下原理。实现多个文件的记录合并到一个文件,前提是这些XLS文件里面的数据是按照一个模式(格式)排列的。首先,要建立一个文件列表(XLS文件),里面的内容就是所有要合并的文件的文件名。方法是:用dir>list.txt命令(前提是这些文件在同一个目录下),再粘贴到XLS文件中,再用一些文本处理函数做一下处理,得到一个文件名列表,假设名称为 list.xls(这些XLS文件的文件名要是一致,取名很有规律,那有很好办,几乎不要什么手工处理)下面就是要用BVA编程了。原理是:读取list.xls,根据里边的文件名称逐个打开XLS文件,将内容逐一复制到一个文件中。以下代码学过VBA的一看就明白,我自己也只是个菜鸟,只会一点点 ))Public Sub 汇总() Application.Workbooks.Open "driver\path\list.xls" '打开lis文件t
Dim I As Integer
Dim FileNames(1 To 50) As String
For I = 1 To 100
FileNames(I) = Application.Workbooks("list.xls").Worksheets("list").Cells(I, 2).Value
If FileNames(I) = "" Then
Exit For
End If
Next
ActiveWorkbook.Close
Dim AppID(1 To 10000) As StringI = 1
Dim Count As Integer
Count = 1
Dim Data As String
Dim FileNum As Integer
FileNum = 1Do While FileNames(FileNum) <> "" Application.Workbooks.Open FileNames(FileNum)
For I = 6 To 250
Data = Application.Workbooks( FileNames(FileNum)).Worksheets("???").Cells(I, 3).Value
If Data = "" Then
Exit For
End If
AppID(Count) = Data
Count = Count + 1
Next
ActiveWorkbook.Close
FileNum = 1 + FileNum
LoopI = 1
Do While I < Count
Cells(I + 1, 1) = AppID(I)
I = I + 1
Loop
End Sub |
|