首页 > 代码库 > 合并工作表Excel用宏

合并工作表Excel用宏

 1 Private Sub CommandButton1_Click() 2 Dim rng As Range, arr As Range 3  4 gjl = Range("b13") 5 gjz = Range("b14:b" & Range("a65536").End(xlUp).Row) 6 For Each arr In Sheet3.Range(gjl & "1:" & gjl & Sheet3.Range(gjl & "65536").End(xlUp).Row) 7 For i = 1 To UBound(gjz) 8 If arr = gjz(i, 1) Then 9 If rng Is Nothing Then10 Set rng = arr11 Else12 Set rng = Union(rng, arr)13 End If14 End If15 Next i16 Next17 If Not rng Is Nothing Then rng.EntireRow.Delete18 End Sub19 20 Private Sub Worksheet_Change(ByVal Target As Range)21 If Target.Address = "$B$2" And Range("B2") = "汇总成一个表" Then22 Range("B4:B6").Interior.ColorIndex = 223 Range("c3") = "说明:" & Chr(10) & "1、将选择的多个工作簿中的工作表合并到本工作簿<数据>表中,若工作簿中含多个工作表会对多个工作表进行合并。" & Chr(10) & "2、请在参数中输入参数以确定标题行只保留一个。" & Chr(10) & "3、合并完后可以点<删除>按钮删除不要的行。"24 Range("C2").Validation.Delete25 Range("C2").Interior.ColorIndex = 226 Range("C2").Font.ColorIndex = 227 End If28 If Target.Address = "$B$2" And Range("B2") = "汇总成多个表" Then29 Range("B4:B6").Interior.ColorIndex = 1530 Range("c3") = "说明:" & Chr(10) & "1、将选择的多个工作簿中的工作表分别提取到本工作簿中,若工作簿中含多个工作表也会对多个工作表进行提取。" & Chr(10) & "2、无需设置参数,也无需点<删除>按钮。" & Chr(10) & "3、应选择表名的命名方式以确定提取后生成的工作表名。"31 Range("C2").Validation.Delete32 Range("C2").Validation.Add Type:=xlValidateList, Formula1:="以<工作簿名>为表名,以<工作表名>为表名,以<工作簿名+工作表名>为表名"33 Range("C2").Interior.ColorIndex = 3334 Range("C2").Font.ColorIndex = 135 Range("C2").Select36 37 End If38 End Sub

在excelhome找到一段宏,很好用,可以将多个工作表合并成一个工作表或者一个工作薄,还有删除垃圾行的内容。

下载地址如右: 汇总多个工作表

合并工作表Excel用宏