excel 多个文件数据合并
请问各位高手:我想把多个excel文件中的数据合并,有没有谁可以提供VBA代码?同一文件夹下有book1.xls book2.xls……等,文件的个数不定,每个文件里只有sheet1里有内容,各文件第一行都是相同的,从第二行开始数据不同,现想把这些文件中的数据都汇总在一个新的sheet里,第一行内容还是sheet1中的第一行。 --------------------编程问答-------------------- 学习
--------------------编程问答-------------------- 如果续个打开COPY到新的工作表,那会好慢. --------------------编程问答-------------------- 用 VBA 很容易实现。
是把‘分散’的工作薄中的内容顺次添加到新建的工作薄中吗?
那些文件打开/添加的顺序有没有要求?
如果有顺序要求的话,文件名必须符合一定的命名规则。
--------------------编程问答-------------------- 粘贴俺的代码到你的VB模块里,然后将路径修改成你实际的路径,运行后即完成了数据合并,合并文件名为“合并后的文件.xls”。
--------------------编程问答-------------------- 本来可以使用ADO来实现的,考虑到可能需要保留格式,故采用了这种办法。 --------------------编程问答-------------------- Ding........
Option Explicit
Sub main()
Dim strPath As String, strFile As String
Dim nRows As Long, nCols As Long, c As Long
Dim xlApp As Object, xlSrcBook As Object, xlNewBook As Object, xlSheet As Object, xlRange As Object
strPath = "c:\temp\"
If Dir(strPath & "合并后的文件.xls") <> "" Then Kill strPath & "合并后的文件.xls"
Set xlApp = CreateObject("Excel.Application")
Set xlNewBook = xlApp.Workbooks.Add
strFile = Dir(strPath & "*.xls")
Do While Len(strFile) > 0
Set xlSrcBook = xlApp.Workbooks.Open(strPath & strFile, , True)
Set xlSheet = xlSrcBook.Sheets(1)
nRows = xlSheet.UsedRange.Rows.Count
nCols = xlSheet.UsedRange.Columns.Count
Set xlRange = xlSheet.Range(xlSheet.Cells(IIf(c, 2, 1), 1), xlSheet.Cells(nRows, nCols))
xlRange.Select
xlRange.Copy
xlNewBook.Sheets(1).Cells(c + 1, 1).PasteSpecial &HFFFFEFF8
c = xlNewBook.Sheets(1).UsedRange.Rows.Count
xlSrcBook.Close
strFile = Dir()
Loop
xlNewBook.SaveAs strPath & "合并后的文件.xls"
xlNewBook.Close
xlApp.Quit
MsgBox "文件数据合并完毕!", vbInformation, "提示"
End Sub
--------------------编程问答-------------------- 顶三巴 --------------------编程问答-------------------- up.mark --------------------编程问答--------------------
你好,我是小菜,我是按照上面的操作,路径也改过了,为什么就是不成功呢,急死了 --------------------编程问答-------------------- 用我的多工作簿合并工具《Excel工具集-合并工作表之02(多工作簿合并)》
http://www.okexcel.com.cn/bbs/viewthread.php?tid=757
--------------------编程问答-------------------- Option Explicit
Sub main()
Dim strPath As String, strFile As String
Dim nRows As Long, nCols As Long, c As Long
Dim xlApp As Object, xlSrcBook As Object, xlNewBook As Object, xlSheet As Object, xlRange As Object
strPath = "c:\temp\"
If Dir(strPath & "合并后的文件.xls") <> "" Then Kill strPath & "合并后的文件.xls"
Set xlApp = CreateObject("Excel.Application")
Set xlNewBook = xlApp.Workbooks.Add
strFile = Dir(strPath & "*.xls")
Do While Len(strFile) > 0
Set xlSrcBook = xlApp.Workbooks.Open(strPath & strFile, , True)
Set xlSheet = xlSrcBook.Sheets(1)
nRows = xlSheet.UsedRange.Rows.Count
nCols = xlSheet.UsedRange.Columns.Count
Set xlRange = xlSheet.Range(xlSheet.Cells(IIf(c, 2, 1), 1), xlSheet.Cells(nRows, nCols))
xlRange.Select
xlRange.Copy
xlNewBook.Sheets(1).Cells(c + 1, 1).PasteSpecial &HFFFFEFF8
c = xlNewBook.Sheets(1).UsedRange.Rows.Count
xlSrcBook.Close
strFile = Dir()
Loop
xlNewBook.SaveAs strPath & "合并后的文件.xls"
xlNewBook.Close
xlApp.Quit
MsgBox "文件数据合并完毕!", vbInformation, "提示"
End Sub
这是把‘分散’的工作薄中的内容顺次添加到新建的工作薄中的代码,我想把他修改成“把‘分散’的工作薄中第N行的内容顺次添加到新建的工作薄中,希望有人能帮我一下,谢谢
补充:VB , VBA