Office中国论坛/Access中国论坛

标题: 如何简便地合并大量excel文件? [打印本页]

作者: xbhxz    时间: 2004-6-24 02:59
标题: 如何简便地合并大量excel文件?
大量的.xls文件,相同的一行行的记录,如果一个个打开复制粘贴到一个文件太麻烦了,有没有简便的方法啊?
作者: hzg7818    时间: 2004-6-24 04:55
是明细数据罗列汇总,还是叠加汇总?
作者: xbhxz    时间: 2004-6-24 07:27
是明细数据罗列汇总。谢谢。
作者: xyquit    时间: 2004-7-11 08:06
我没有试过,能否利用dos的copyj进行合并
作者: bering    时间: 2004-7-11 23:49
我在工作中也遇到过这种情况,已经有了一个解决方案。用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
作者: mydeeper    时间: 2004-7-15 03:14
非常感谢
作者: carltony    时间: 2007-6-24 06:51
[em17][em17]




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3