vba宏汇总同文件夹下多工作簿数据
时间: 2023-09-07 08:02:12 浏览: 216
VBA宏可以帮助我们在同一个文件夹下的多个工作簿中汇总数据。下面是一个简单的实现示例:
1. 首先,我们需要创建一个新的工作簿,用于存储数据汇总结果。
2. 然后,在VBA编辑器中创建一个新的模块,以便编写我们的宏代码。
3. 在模块中添加以下代码:
```
Sub 汇总数据()
Dim 文件名 As String
Dim 文件路径 As String
Dim 源工作簿 As Workbook
Dim 目标工作簿 As Workbook
Dim 目标行数 As Long
' 设置目标工作簿
Set 目标工作簿 = ThisWorkbook
' 获取当前文件夹路径
文件路径 = ThisWorkbook.Path & "\"
' 循环处理文件夹中的每个工作簿
文件名 = Dir(文件路径 & "*.xlsx")
While 文件名 <> ""
' 排除当前工作簿
If 文件名 <> 目标工作簿.Name Then
' 打开源工作簿
Set 源工作簿 = Workbooks.Open(文件路径 & 文件名)
' 将源工作簿的数据复制到目标工作簿
源工作簿.Sheets(1).UsedRange.Copy 目标工作簿.Sheets(1).Cells(目标工作簿.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)
' 关闭源工作簿,不保存更改
源工作簿.Close False
End If
' 获取下一个工作簿的文件名
文件名 = Dir
Wend
' 最后,保存目标工作簿
目标工作簿.Save
' 清空内存中的对象引用
Set 目标工作簿 = Nothing
Set 源工作簿 = Nothing
MsgBox "数据汇总完成!", vbInformation
End Sub
```
以上代码根据当前文件夹中的所有xlsx文件进行数据汇总。你可以根据需要进行修改,以适应不同的文件类型和数据位置。
执行完这个宏后,所有文件夹中的数据将会汇总到目标工作簿的第一个工作表中。你可以在宏执行完成后进行必要的修改和整理。
请确保在运行宏之前先保存好所有工作簿的更改,以免数据丢失。
希望这个回答对你有帮助!
阅读全文