新人小白求助
vba吧
全部回复
仅看楼主
level 2
wujiang5345 楼主
Excel文件所有sheet合并在一个汇总表格里,怎么实现
2025年02月05日 12点02分 1
level 12
就是把其他表格全都复制粘贴到汇总表?
2025年02月06日 02点02分 2
是的
2025年02月23日 14点02分
level 12
在VBA中,将工作簿中所有工作表的数据复制到一张汇总表,可以按以下步骤实现:
1.创建新的汇总表:如果工作簿中没有汇总表,需要先创建一个。
2.遍历所有工作表:使用循环结构遍历工作簿中的每一个工作表。
3.复制数据:将每个工作表中的数据复制到汇总表中。
假设汇总表名为“汇总表”,如果不存在则新建。以下是示例代码:
vba
Sub CopyAllSheetsToSummary()
Dim ws As Worksheet
Dim summaryWs As Worksheet
Dim lastRow As Long
Dim lastCol As Long
Dim targetRow As Long
'检查是否存在名为“汇总表”的工作表
On Error Resume Next
Set summaryWs = ThisWorkbook.Sheets("汇总表")
On Error GoTo 0
'如果不存在,则新建一个名为“汇总表”的工作表
If summaryWs Is Nothing Then
Set summaryWs = 网页链接 网页链接 = "汇总表"
End If
targetRow = 1 '从汇总表第一行开始粘贴数据
'遍历所有工作表
For Each ws In 网页链接 If 网页链接 <> "汇总表" Then '跳过汇总表本身
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row '获取当前工作表最后一行
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column '获取当前工作表最后一列
ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol)).Copy summaryWs.Cells(targetRow, 1)
targetRow = targetRow + lastRow '更新粘贴起始行
End If
Next ws
Set ws = Nothing
Set summaryWs = Nothing
End Sub
上述代码实现了将工作簿中除“汇总表”外的所有工作表数据复制到“汇总表”中。具体步骤为:首先检查“汇总表”是否存在,不存在则新建;然后遍历所有工作表,跳过“汇总表”,获取每个工作表的数据范围并复制到“汇总表”的相应位置,每次复制后更新“汇总表”的粘贴起始行。
请注意,使用此代码前,请确保工作簿中工作表名称无重复,且“汇总表”名称符合需求。如有工作表结构差异,需根据实际情况调整。
2025年02月06日 02点02分 3
level 1
我有这个小程序,一键批量
2025年04月30日 15点04分 4
1