合并工作表-同一工作簿

代码(选用,合并任意的Sheet):

'合并之前,请先创建一个空白的 Sheet 作为合并目标 Sheet ,这个 Sheet 必须是第一个 Sheet 哦。
'如果不合并标题行(比如第一行)则 j=1 改为 j=2
'如果数据不是从第一行,或者第一列开始的,请修改 j=1 及 k=2 两行的参数。
'比如 j=2 k=3 表示从 第2行,第三列开始的数据。

Sub CombineSheet()

Dim i, j, k, n As Integer
n = 1 '合并工作表起始粘贴行标
For i = 2 To ThisWorkbook.Sheets.Count '指要合并从第2个工作表到第几个工作表
For j = 1 To ThisWorkbook.Sheets(i).UsedRange.Rows.Count+1 '指从源工作表的第几行开始复制
For k = 1 To ThisWorkbook.Sheets(i).UsedRange.Columns.Count '指从源工作表的第几列开始复制
ThisWorkbook.Sheets(1).Cells(n, k).Value = ThisWorkbook.Sheets(i).Cells(j, k).Value '若不想放在第一张工作表,则要对工作表进行指定,且合并源工作表的顺序要跟着调
Next k
n = n + 1
Next j
Next i

End Sub

代码二:

Sub CpyData() '合并整个工作簿的工作表到汇总表,适用所有工作表格式相同时,缺点带公式复制
Cells.ClearContents
Dim Sh As Worksheet, i%
i = 0
For Each Sh In Sheets
If Sh.Name <> "汇总" Then
i = i + 1: If i = 1 Then Sh.Rows(1).Copy [A1] '拷贝第一个工作表的第一行为标题行
Sh.UsedRange.Offset(1).Copy [B65536].End(3).Offset(1, -1)
End If
Next
End Sub


如何把EXCEL多个工作表的内容合并在一个工作表上?
代码1:(缺点:每汇总一次生成一张工作表)
Sub 汇总数据()
Sheets.Add
With ActiveSheet
.Name = "汇总表" & Format(Now, "hhmmss")
For Each s In ThisWorkbook.Sheets
s.UsedRange.Copy .Cells(.UsedRange.Rows.Count + 1, 1)
Next
End With
End Sub


代码2(缺点,每次合并前不能将合并表清空后重新运行宏):
Sub 合并()
Dim m As Integer
Dim n As Integer
Dim o As Integer
For m = 2 To 9 '此处的9需要根据你实际的工作表数填写
n = Sheets(m).[a65536].End(xlUp).Row
o = Sheets(1).[a65536].End(xlUp).Row
Sheets(m).Select
Range("a1", "z" & n).Select '此处的a1指的是需要复制的工作表的起始单元格
Range("a" & n).Activate
Selection.Copy
Sheets(1).Select
Range("a" & o + 1).Select '此处的o + 1指的是粘贴后每张工作表的间隔情况
ActiveSheet.Paste
Next
End Sub

你可能喜欢

  • Excel使用技巧大全(超
  • excel合并
  • Excel表格的基本操作教程
  • 使用技巧
  • excel实用
  • 知识大全
  • VBA程序设计

合并工作表 同一工作簿相关文档

最新文档

返回顶部