标签:style blog http io ar color sp for 数据
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 Then 10 Set rng = arr 11 Else 12 Set rng = Union(rng, arr) 13 End If 14 End If 15 Next i 16 Next 17 If Not rng Is Nothing Then rng.EntireRow.Delete 18 End Sub 19 20 Private Sub Worksheet_Change(ByVal Target As Range) 21 If Target.Address = "$B$2" And Range("B2") = "汇总成一个表" Then 22 Range("B4:B6").Interior.ColorIndex = 2 23 Range("c3") = "说明:" & Chr(10) & "1、将选择的多个工作簿中的工作表合并到本工作簿<数据>表中,若工作簿中含多个工作表会对多个工作表进行合并。" & Chr(10) & "2、请在参数中输入参数以确定标题行只保留一个。" & Chr(10) & "3、合并完后可以点<删除>按钮删除不要的行。" 24 Range("C2").Validation.Delete 25 Range("C2").Interior.ColorIndex = 2 26 Range("C2").Font.ColorIndex = 2 27 End If 28 If Target.Address = "$B$2" And Range("B2") = "汇总成多个表" Then 29 Range("B4:B6").Interior.ColorIndex = 15 30 Range("c3") = "说明:" & Chr(10) & "1、将选择的多个工作簿中的工作表分别提取到本工作簿中,若工作簿中含多个工作表也会对多个工作表进行提取。" & Chr(10) & "2、无需设置参数,也无需点<删除>按钮。" & Chr(10) & "3、应选择表名的命名方式以确定提取后生成的工作表名。" 31 Range("C2").Validation.Delete 32 Range("C2").Validation.Add Type:=xlValidateList, Formula1:="以<工作簿名>为表名,以<工作表名>为表名,以<工作簿名+工作表名>为表名" 33 Range("C2").Interior.ColorIndex = 33 34 Range("C2").Font.ColorIndex = 1 35 Range("C2").Select 36 37 End If 38 End Sub
在excelhome找到一段宏,很好用,可以将多个工作表合并成一个工作表或者一个工作薄,还有删除垃圾行的内容。
下载地址如右: 汇总多个工作表
标签:style blog http io ar color sp for 数据
原文地址:http://www.cnblogs.com/liubuyao/p/4107422.html