Kopieer een rij of rijen van elk blad naar één blad met VBA in Microsoft Excel

Anonim
  • De macro voegt een blad met de naam Master toe aan uw werkmap en kopieert de cellen van elk blad in uw werkmap in dit werkblad.
  • De eerste macro maakt een normale kopie en de tweede macro kopieert de waarden.
  • De subs van de macro gebruiken onderstaande functies, de macro's werken niet zonder de functies.

Gebruik deze sh.Rows("1:4").Kopieer om meer dan één rij te kopiëren.

Sub Test4() Dim sh As Worksheet Dim DestSh As Worksheet Dim Last As Long If SheetExists("Master") = True Dan MsgBox "The sheet Master bestaat al" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh .Name = "Master" voor elke 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 Dan MsgBox "De sheet Master al bestaan" 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 .Scherm nUpdating = True End Sub Function LastRow(sh As Worksheet) On Error Hervat volgende LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row On Error GoTo 0 End Function Function Lastcol (sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find (Wat:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False ). Kolom bij fout Ga naar 0 Functie Functieblad bestaat uit (SName As String, _ Optioneel ByVal WB As Workbook) As Boolean On Error Hervat volgende Als WB niets is, stel dan WB = ThisWorkbook SheetExists = CBool(Len(Sheets(SName).Name) in )) Functie beëindigen