- Makro lisab teie töövihikusse lehe nimega Master ja kopeerib lahtrid selle töölehe iga töövihiku lehelt.
- Esimene makro teeb tavalise koopia ja teine makro kopeerib väärtused.
- Makro alamprogrammid kasutavad alltoodud funktsioone, makro ei tööta ilma funktsioonideta.
Kasutage seda sh.Rows ("1: 4"). Kopeerige, et kopeerida rohkem kui üks rida.
Alamkontroll4 () Dim sh töölehena Dim DestSh kui tööleht Dim viimati nii kaua, kui SheetExists ("Master") = True Siis MsgBox "Lehe kapten on juba olemas" Exit Sub End if Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh .Name = "Master" Iga sh jaoks selles töövihikus. Töölehed Kui sh.Name DestSh.Name Then If sh.UsedRange.Count> 1 Then Last = LastRow (DestSh) sh.Rows ("1"). Copy DestSh.Cells ( Viimane + 1, 1) lõpp kui lõpp, kui järgmine rakendus.ScreenUpdating = Tõsi lõpp alamtest4 olemas "Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name =" Master "Iga sh jaoks selles töövihikus.Worksheets If sh.Name DestSh.Name then If sh.UsedRange.Count> 1 then Last = LastRow (DestSh) Koos sh.Rows ("1") DestSh.Cells (Last + 1, 1) .Resize (.Rows.Count, _ .Columns.Count) .Väärtus = .Väärtus End End kui End If Next Application .Scree nUpdating = Tõelise lõpu alamfunktsioon LastRow (sh töölehena) Tõrke korral Jätka järgmisel LastRow = sh.Cells.Find (Mis: = "*", _ Pärast: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = Väär). (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlEelmine, _ MatchCase: = False ). Veerg vea kohta GoTo 0 End Function FunktsioonilehtEksisteerib (SName nagu string, _ Valikuline ByVal WB kui töövihik) Boolean On Error Jätka järgmisena, kui WB pole midagi, siis määrake WB = ThisWorkbook SheetExists = CBool (Len (Sheets (SName) .Name )) Lõppfunktsioon