【vba】合并工作簿:自动将多个工作表中的内容合并到一个工作簿(含格式) |
您所在的位置:网站首页 › 多个工作簿内容合并 › 【vba】合并工作簿:自动将多个工作表中的内容合并到一个工作簿(含格式) |
将多个工作簿合并到同一个工作表,其中每个工作簿中有1-n个工作表。 背景色、字体、合并单元格(横向、纵向)、公式等都保持不变。 代码如下: Sub 合并工作薄() On Error Resume Next Dim SummarySheet As Worksheet '汇总表 Dim SelectedFiles() As Variant '选择的文件集合 Dim Nrow As Long Dim FileName As String Dim NFile As Long Dim WorkBk As Workbook Dim SourceRange As Range Dim DestRange As Range Set SummarySheet = ThisWorkbook.Worksheets(1) SelectedFiles = Application.GetOpenFilename(filefilter:="Excel 文件(*.xl*),*.xl*", MultiSelect:=True) Nrow = 1 For NFile = LBound(SelectedFiles) To UBound(SelectedFiles) FileName = SelectedFiles(NFile) Set WorkBk = Workbooks.Open(FileName) '打开工作簿 'MsgBox "1:目标工作簿名称【" & WorkBk.Name & "】,共有" & WorkBk.Sheets.Count & "个工作表" For NS = 1 To WorkBk.Sheets.Count '遍历工作簿下的所有工作表 Set SourceRange = WorkBk.Worksheets(NS).UsedRange '设置源工作簿中的第NS个工作表的使用区域(连续) Set DestRange = SummarySheet.Range("A" & Nrow) '设置汇总工作表开始单元格(用于粘贴) Set DestRange = DestRange.Resize(SourceRange.Rows.Count, SourceRange.Columns.Count) '获取目标区域的大小(行、列),从A&Nrow开始 SourceRange.Copy DestRange 'DestRange.Value = SourceRange.Value Nrow = Nrow + DestRange.Rows.Count Next WorkBk.Close savechanges:=False Next SummarySheet.Columns.AutoFit End Sub
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |