Kopiera en rad eller rader av varje ark till ett ark med VBA i Microsoft Excel

Anonim
  • Makrot lägger till ett blad med namnet Master i din arbetsbok och kopierar cellerna från varje blad i din arbetsbok i det här kalkylbladet.
  • Det första makrot gör en normal kopia och det andra makrot kopierar värdena.
  • Makrons subs använder funktionerna nedan, makron fungerar inte utan funktionerna.

Använd denna sh.Rows ("1: 4"). Kopiera för att kopiera mer än en rad.

Sub Test4 () Dim sh As Worksheet Dim DestSh As Worksheet Dim Last As Long If SheetExists ("Master") = True Then MsgBox "Sheet Master exist exist" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh .Name = "Master" för varje sh i ThisWorkbook.Worksheets If sh.Name DestSh.Name Then If sh.UsedRange.Count> 1 Then Last = LastRow (DestSh) sh.Rows ("1"). Kopiera 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 "Sheet Master redan exist "Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name =" Master "For each 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 End With End If End If Next Application .Talus nUpdating = True End Sub Function LastRow (sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row On Error GoTo 0 Avsluta funktion Funktion Lastcol (sh som arbetsblad) På fel Återuppta Nästa Lastcol = sh.Cells.Find (Vad: = "*", _ Efter: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False ) .Kolumn på fel Gå till 0 Avsluta funktion Funktion SheetExists (SName As String, _ Valfritt ByVal WB som arbetsbok) Som Boolean på fel Återuppta nästa om WB inte är något, ställ sedan in WB = ThisWorkbook SheetExists = CBool ​​(Len (Sheets (SName) .Name. )) Avsluta funktion