vb整合多个excel表格到一张_用VB把多个excel文件的数据顺序拷到一个excel中

是给朋友整理实验数据用的,两个小需求:

一、要第一列是数据序号,且多个文件数据拷到目的文件的时候数据序号要按顺序排列;

二、每个文件可能有多个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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel是一款功能强大的电子表格软件,可以进行数据处理、分析和可视化展示。如果需要合并多个数据表,可以使用VB(Visual Basic)编程语言来实现。 首先,我们可以使用VB编写一个宏(macro)来实现数据表的合并。在Excel,点击“开发工具”选项,在Visual Basic编写宏。我们可以使用循环的方式,遍历多个数据表,将它们逐一合并到一个新的数据。可以通过VB的命令来设置源数据表的范围,并将其复制到目标数据。 其次,我们可以使用VB编写一个自定义函数来实现数据表的合并。通过VB的函数,我们可以设置参数来指定要合并的数据表,然后将它们逐一合并到一个新的数据。这样可以方便地在Excel使用函数来实现数据表的合并,并且可以根据需要自定义具体的合并方式和规则。 最后,我们可以使用VB编写一个用户界面,通过Excel的用户界面来实现数据表的合并。通过VB的表单和按钮等控件,可以设计出一个方便用户操作的界面,用户可以在界面选择要合并的数据表,并设置合并的方式和规则,然后通过VB的代码来实现数据表的合并,并在界面展示合并后的结果。 总之,通过VB编程语言来合并多个数据表,可以实现更加灵活、高效和定制化的数据处理和分析操作,能够满足不同需求下的数据合并操作。ExcelVB的结合,可以为数据处理和分析提供更多可能性和便利性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值