Excel多个工作表(Sheet)合并!

来源:百度知道 编辑:UC知道 时间:2024/06/05 11:47:59
这里是指多个工作表不是指工作簿
我有一个工作簿里有200个工作表(Sheet1-Sheet200)。这200个sheet里都是表格。内容区域里的表头和格式,行数,列数都相同,唯有单元格内的内容不同。
我现在想在Sheet201里收集Sheet1-Sheet200里的所有表格内容。
用复制粘贴肯定原始,笨拙,工作量又大。
请问有没有快速一点的方法。
除了宏有没有其它方法。
我使用过宏,但只能收集到每个SHEET中的2-3行中的内容(我想要的是全部的内容)。
我使用宏的代码如下:(或是有高手能否修改以下宏方法,让我达到我想要的目的,高分跪赐!)
Sub 宏1()
n = 200 '
k = 1
For i = 1 To n
j = 1
While Sheets(i).Cells(j, 1) <> ""
l = 1
While Sheets(i).Cells(j, l) <> ""
Sheets(n + 1).Cells(k, l) = Sheets(i).Cells(j, l)
l = l + 1
Wend
k = k + 1
j = j + 1
Wend
Next i
End Sub

根据你的思路,可以使用下面代码,判断数据行是否为空的条件可以自己调节
各位兄弟请注意 表头不要复制了,所以需要确定数据的起始位置

Sub 合并sheets()
n = 6 '源表个数
nstart = 8 '每个单表数据的起始行数
k = nstart '目标表的行标
For i = 1 To n
irow = nstart '行标
While Sheets(i).Cells(irow + 1, 2) <> "" '以第2列数据为结束标示,确定源表的行数
irow = irow + 1
Wend
Sheets(i).Rows(nstart & ":" & irow).Copy '复制源数据行
Sheets(n + 1).Activate
Sheets(n + 1).Cells(k, 1).Select
ActiveSheet.Paste '粘贴数据
k = k + irow - nstart + 1
Next i
End Sub
有问题q我80871835

你宏里面一个单元格一个单元格的赋值太慢了,可以改用下面的方法。尤其是sheet表多的时候。
双击工程资源管理器里面的thisworkbook,将代码粘贴进右侧的代码区。

Sub 宏1()
Application.DisplayAlerts = False '关闭提示
Application.ScreenUpdating = False '关闭屏幕更新,加快程序运行。
n = 200
For i = 1 To n
Worksheets(i).Select
ActiveSheet.UsedRa