|
- Sub 合并工作表()
- Application.DisplayAlerts = False
- Dim f, i As Integer, j As Integer, wb As Workbook, k As Integer
- Dim zb As Workbook, z1 As Integer, z2 As Integer, x As Integer
- Set zb = Workbooks("合并工作表.xls")
- f = Application.GetOpenFilename("xls格式,*.xls, xlsx格式,*.xlsx,xlsm格式,*.xlsm", 2, "选择需要合并的表格", MultiSelect:=True)
- k = 1
- z1 = 1
- For i = zb.Sheets.Count To 1 Step -1
- If zb.Sheets(i).Name = "2021" Then
- zb.Sheets(i).Rows.ClearContents
- Else
- zb.Sheets(i).Delete
- End If
- Next i
- Dim xx
- xx = InputBox("需要合并哪个", "输入合并表")
- If xx = "" Then End
- For i = 1 To UBound(f)
- Set wb = Workbooks.Open(f(i))
- For j = 1 To wb.Sheets.Count
- If wb.Sheets(j).Name = xx Then
- zb.Worksheets.Add.Name = VBA.Split(wb.Sheets(j).Parent.Name, ".")(0)
- wb.Sheets(j).UsedRange.Copy
- zb.Worksheets(VBA.Split(wb.Sheets(j).Parent.Name, ".")(0)).Range("a1").PasteSpecial (xlPasteValues)
- zb.Worksheets("2021").Range("a" & k).PasteSpecial (xlPasteValues)
- z2 = z1 + wb.Sheets(j).UsedRange.Rows.Count - 1
- x = x + 1
- If x Mod 2 = 0 Then
- zb.Sheets("2021").Range("" & z1 & ":" & z2 & "").Interior.Color = vbYellow
- End If
- If k = 1 Then
- k = k + wb.Sheets(j).UsedRange.Rows.Count
- Else
- zb.Worksheets("2021").Rows(k).Delete
- k = k + wb.Sheets(j).UsedRange.Rows.Count - 1
- End If
- Exit For
- End If
- Next j
- wb.Close
- z1 = k
- Next i
- Application.DisplayAlerts = True
- End Sub
复制代码
|
-
|