vba10个excel表每个表2个子文件夹合并汇总
在Excel VBA中,如果你想要合并10个Excel工作簿(每个工作簿位于两个子文件夹中)的数据到一个汇总工作簿,你可以使用以下步骤来编写代码:
1.确定子文件夹和文件的路径。
2.循环遍历每个子文件夹中的每个工作簿。
3.打开每个工作簿,并复制需要的数据到汇总工作簿。
4.关闭每个工作簿。
以下是一个示例VBA代码,用于合并两个子文件夹中的10个Excel工作簿的数据:
vba复制代码
Sub MergeWorkbooks()
Dim SummaryWorkbook As Workbook
Dim SourceWorkbook As Workbook
Dim SourceRange As Range
Dim DestRange As Range
Dim LastRow As Long
Dim FolderPath1 As String
Dim FolderPath2 As String
Dim FileName As String
Dim i As Integer
' 设置两个子文件夹的路径
FolderPath1 = "C:\SubFolder1\"
FolderPath2 = "C:\SubFolder2\"
' 创建汇总工作簿(如果它不存在的话)
If Workbooks("MergedData.xlsx").Count = 0 Then
Set SummaryWorkbook = Workbooks.Add
SummaryWorkbook.SaveAs Filename:="C:\MergedData.xlsx"
Else
Set SummaryWorkbook = Workbooks("MergedData.xlsx")
End If
' 初始化行计数器
i = 1
' 循环遍历第一个子文件夹中的文件
FileName = Dir(FolderPath1 & "*.xlsx")
Do While FileName <> ""
' 打开源工作簿
Set SourceWorkbook = Workbooks.Open(FolderPath1 & FileName)
' 假设你要合并的数据位于每个工作簿的Sheet1
Set SourceRange = SourceWorkbook.Sheets("Sheet1").UsedRange
' 将数据复制到汇总工作簿的下一行
LastRow = SummaryWorkbook.Sheets("Sheet1").Cells(SummaryWorkbook.Sheets("Sheet1").Rows.Count, "A").End(xlUp).Row + 1
Set DestRange = SummaryWorkbook.Sheets("Sheet1").Range("A" & LastRow)
SourceRange.Copy DestRange
' 关闭源工作簿,不保存更改
SourceWorkbook.Close SaveChanges:=False
' 移动到下一个文件
新手入门excel表格制作打印
FileName = Dir()
i = i + 1
Loop
' 重置i用于第二个子文件夹
i = 1
' 循环遍历第二个子文件夹中的文件
FileName = Dir(FolderPath2 & "*.xlsx")
Do While FileName <> ""
' 打开源工作簿
Set SourceWorkbook = Workbooks.Open(FolderPath2 & FileName)
' 假设你要合并的数据位于每个工作簿的Sheet1
Set SourceRange = SourceWorkbook.Sheets("Sheet1").UsedRange

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。