用VB把多个excel文件的数据顺序拷到一个excel中
来源:互联网 发布:高中国外费用知乎 编辑:程序博客网 时间:2024/05/17 00:19
是给朋友整理实验数据用的,两个小需求:
一、要第一列是数据序号,且多个文件数据拷到目的文件的时候数据序号要按顺序排列;
二、每个文件可能有多个worksheet,都要拷贝到目标文件里面。
对于office2003以前的excel,是支持Application.FileSearch的,实现代码如下:
Sub Test()
Dim i As Integer, iRow As Integer
Dim strPath As String
Dim TheSheet As Worksheet
iRow = 1
Set TheSheet = ActiveWorkbook.Worksheets("sheet1")
strPath = "D:/Macro/testtest"
With Application.FileSearch
.LookIn = strPath
.SearchSubFolders = True
.Filename = "*.*"
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
'Range("A" & i) = .FoundFiles(i)
Workbooks.Open (.FoundFiles(i))
For j = 1 To ActiveWorkbook.Worksheets.Count
'ActiveWorkbook.Worksheets(i).Cells(1, 1).Value = "a"
ActiveWorkbook.Worksheets(j).UsedRange.Copy
TheSheet.Activate
While TheSheet.Range("a" & iRow).Value <> ""
TheSheet.Cells(iRow, 1) = iRow
iRow = iRow + 1
Wend
TheSheet.Range("A" & iRow).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Next j
Workbooks(Workbooks.Count).Close
Next i
End If
End With
End Sub
--------------------------------------------------------------------------------------
对于Office2007的用户,Application.FileSearch不支持了,修改后的代码如下:
Sub Test()
Dim i As Integer, iRow As Integer
Dim strPath, Filename, Search_Fullname As String
Dim TheSheet, CurrentSheet As Worksheet
Dim Coll_Docs As New Collection
Dim activeSheetName As String
iRow = 1
Set TheSheet = ActiveWorkbook.Worksheets("sheet1")
strPath = "D:/Macro/testtest"
Filename = "*.xls"
Set Coll_Docs = Nothing
DocName = Dir(strPath & "/" & Filename)
Do Until DocName = ""
Coll_Docs.Add Item:=DocName
DocName = Dir
Loop
For i = Coll_Docs.Count To 1 Step -1
Search_Fullname = strPath & "/" & Coll_Docs(i)
Workbooks.Open (Search_Fullname)
For j = 1 To ActiveWorkbook.Worksheets.Count Step 1
If j = 1 Then
activeSheetName = "sheet" & j
Set CurrentSheet = ActiveWorkbook.Worksheets(activeSheetName)
End If
CurrentSheet.Activate
ActiveWorkbook.Worksheets(j).UsedRange.Copy
TheSheet.Activate
While TheSheet.Range("a" & iRow).Value <> ""
TheSheet.Cells(iRow, 1) = iRow
iRow = iRow + 1
Wend
TheSheet.Range("A" & iRow).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Next j
Workbooks(Workbooks.Count).Close
Next i
End Sub
- 用VB把多个excel文件的数据顺序拷到一个excel中
- 把多个excel文件的sheet1数据合并到一个excel文件的sheet1中
- VB把一个Excel中的部分数据Copy到另一个Excel表中
- 把多个CSV文件加载到一个EXCEL文件
- ASP.NET将数据导出到一个EXCEL文件的多个SHEET中
- 关于导出excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- 导出Excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- 导出Excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- 用VBA实现把多个Excel文件合并到一个Excel文件的多个工作表(Sheet)里
- c#(Asp.net)多个Excel文件合并到一个新的excel中
- 多个Excel文件中的多个Sheet合并到一个Excel文件中两个函数
- WinForm中把DataGrid里面的数据导出成EXCEL文件(VB.net)
- 将Dataset中的多个DataTable导入到一个Excel文件的多个Sheet中
- EXCEL:读取多个EXCEL文件数据到WORD文档
- 把Excel文件中的数据读入到DataGrid中
- 把Excel文件中的数据读入到DataGrid中
- 把Excel文件中的数据读入到DataGrid中
- 把Excel文件中的数据读入到DataGrid中
- 庆生
- 折腾是一个人职业生涯中最为珍贵的财富
- bat批处理文件字符替换一例
- 舞蝶飞照片创意软件功能简介
- sprintf函数用法
- 用VB把多个excel文件的数据顺序拷到一个excel中
- C# 自定义数据类型 数组应用 读取XML
- Java EE 5 开发指南 - 第四章 JavaServer Page技术
- 独乐乐不如众乐乐——将 VSTO 插件部署给所有用户
- Oracle分析函数详述
- MySQL之Handler_read_*
- 设计模式学习笔记(1)单体模式Singleton
- ape的基本知识
- Spring中ref local与ref bean区别: