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小时内删除。
发表评论