Excel 合并Sheets
文章目录
今天又有人来问问题了,要合并一个文件里面的几张Excel表。
第一反应是应该有个按钮什么的可以直接合并的吧,然后下意识的搜索了一下。未果,微软网上面倒是有个2003的合并的说明,就是按一下那个按钮,然后13的里面就没有了 -_-|||
然后想着起码用VBA总是可以的吧,所以就又搜索了一下,拷贝了一段代码:
Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub
试了一下,果然可以,就是还有一个小问题,把每张表里面所有的信息都拷贝过来了,但是其实第一行我是不要的。
那么就有两个思路,一个是在选取要拷贝的区域的时候第一行不要选,要么是拷贝完了把多余的第一行给删了,我选择了第二个方案,谁让它看起来比较简单呢…
Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
If Sheets(1).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row
Sheets(1).UsedRange.Copy Cells(X, 1)
End If
For j = 2 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
ActiveSheet.UsedRange.Rows(X).Delete
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub
这样就可以啦。用起来就是在新建的sheet里面运行一下这个宏,就把其他所有的Sheets合并了,然后只保留第一个Sheet的表头。

