- Makro doda do skoroszytu arkusz o nazwie Master i skopiuje komórki z każdego arkusza w skoroszycie w tym arkuszu.
- Pierwsze makro wykonuje normalną kopię, a drugie makro kopiuje wartości.
- Subskrypcje makra korzystają z poniższych funkcji, makro nie będzie działać bez tych funkcji.
Użyj tego sh.Rows("1:4").Kopiuj, aby skopiować więcej niż jeden wiersz.
Sub Test4() Dim sh As Worksheet Dim DestSh As Worksheet Dim Last As Long If SheetExists("Wzorzec") = True Then MsgBox "Wzorzec arkusza już istnieje" Zakończ Sub End If Application.ScreenUpdating = False Ustaw DestSh = Worksheets.Add DestSh .Name = "Master" dla każdego sh In ThisWorkbook.Worksheets If sh.Name DestSh.Name Then If sh.UsedRange.Count > 1 Then Last = LastRow(DestSh) sh.Rows("1").Copy DestSh.Cells( Last + 1, 1) End If End If Next Application.ScreenUpdating = True End Sub Sub Test4_Values() Dim sh As Worksheet Dim DestSh As Worksheet Dim Last As Long If SheetExists("Master") = True Then MsgBox "Główny arkusz już jest istnieć" Zakończ Sub End If Application.ScreenUpdating = False Ustaw DestSh = Worksheets.Add DestSh.Name = "Wzorzec" dla każdego sh In ThisWorkbook.Worksheets If sh.Name DestSh.Name Then If sh.UsedRange.Count > 1 Then Last = LastRow(DestSh) With sh.Rows("1") DestSh.Cells(Last + 1, 1).Resize(.Rows.Count, _ .Columns.Count).Value = .Value Koniec z końcem, jeśli koniec, jeśli następna aplikacja .Zsypisko nUpdating = True End Podfunkcja LastRow(sh As Worksheet) W przypadku błędu Wznów Następny LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Wiersz W przypadku błędu GoTo 0 Funkcja zakończenia Funkcja Lastcol(sh As Worksheet) W przypadku błędu Wznów Dalej Lastcol = sh.Cells.Find (What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False ).Kolumna W przypadku błędu Przejdź do 0 Funkcja End SheetExists(SName As String, _ Opcjonalne ByVal WB As Workbook) As Boolean W przypadku błędu Wznów Dalej Jeśli WB jest Nic, Ustaw WB = ThisWorkbook SheetExists = CBool(Len(Sheets(SName).Name )) Koniec funkcji