在Excel中,你可以使用VBA(Visual Basic for Applications)来汇总多个工作簿中指定名称的工作表(Sheet)的数据。以下是一个简单的VBA示例。
Sub 合并多个工作簿中的不同工作表() Dim FolderPath As String Dim Filename As String Dim SheetName As String Dim wb As Workbook Dim ws As Worksheet Dim SummaryWs As Worksheet Dim lastRow As Long Dim wbPath As String ' 设置包含工作簿的文件夹路径 FolderPath = "C:\Users\Lenovo\Desktop\王芨22年\" ' 请替换为你的文件夹路径 ' 设置要合并的工作表名称 SheetName = "生猪出场导入模版" ' 请替换为你的工作表名称 ' 创建一个新的工作表用于汇总数据 Set SummaryWs = ThisWorkbook.Worksheets.Add SummaryWs.Name = "合并数据" ' 获取文件夹中的第一个Excel文件 Filename = Dir(FolderPath & "*.xls*") ' 循环遍历文件夹中的所有Excel文件 Do While Filename <> "" ' 构建完整的文件路径 wbPath = FolderPath & Filename ' 打开工作簿 Set wb = Workbooks.Open(wbPath) ' 检查工作簿中是否有指定名称的工作表 On Error Resume Next Set ws = wb.Sheets(SheetName) On Error GoTo 0 If Not ws Is Nothing Then ' 找到汇总工作表的最后一行 lastRow = SummaryWs.Cells(SummaryWs.Rows.Count, 1).End(xlUp).Row ' 将数据复制到汇总工作表 ws.UsedRange.Copy SummaryWs.Cells(lastRow + 1, 2) End If ' 关闭工作簿,不保存更改 wb.Close SaveChanges:=False Set ws = Nothing ' 获取下一个文件名 Filename = Dir() Loop ' 释放对象变量 Set SummaryWs = Nothing Set ws = Nothing Set wb = Nothing End Sub
使用这段代码前,请确保你的Excel启用了宏,并且你了解如何运行VBA代码。你可以在Excel中按Alt + F11打开VBA编辑器,插入一个新的模块(在“插入”菜单中选择“模块”),然后将上述代码粘贴进去。之后,你可以通过运行这个宏来执行数据合并操作。
请注意以下几点:
1、你需要将FolderPath变量的值替换为你存放工作簿的实际文件夹路径。
2、你需要将SheetName变量的值替换为你想要合并的工作表的实际名称。
3、这段代码会遍历指定文件夹中的所有Excel文件(xls和xlsx格式),并尝试打开每个文件以合并指定的工作表。
4、如果工作表不存在,代码会继续处理下一个文件,不会报错。
5、合并完成后,代码会关闭每个工作簿,不保存任何更改。
请根据你的实际需求调整代码中的路径和工作表名称。
还没有评论,来说两句吧...