Copiați un rând sau rânduri ale fiecărei foi într-o singură coală folosind VBA în Microsoft Excel

Anonim
  • Macrocomanda va adăuga o foaie cu numele Master în registrul de lucru și va copia celulele din fiecare foaie din registrul de lucru din această foaie de lucru.
  • Prima macro face o copie normală, iar a doua macro copiază valorile.
  • Subsistemele macro utilizează funcțiile de mai jos, macro-ul nu va funcționa fără funcții.

Utilizați acest sh.Rows („1: 4”). Copiați pentru a copia mai mult de un rând.

Sub Test4 () Dim sh As Worksheet Dim DestSh As Sheet Works Last At Long If SheetExists ("Master") = True Then MsgBox "The master Master already exist" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh .Name = "Master" Pentru fiecare sh din ThisWorkbook.Worksheets If sh.Name DestSh.Name Then If sh.UsedRange.Count> 1 Then Last = LastRow (DestSh) sh.Rows ("1"). Copiați 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 At Long If SheetExists ("Master") = True Then MsgBox "The sheet Master already exist "Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name =" Master "Pentru fiecare sh din 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 .Scree nUpdating = True End Sub Function LastRow (sh As Sheet Works) On Error Reîncepe 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 End Function Function Lastcol (sh As Sheet Works) On Error Reîncepe Următorul Lastcol = sh.Cells.Find (Ce: = "*", _ După: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False ) .Column On Error GoTo 0 End Function Function SheetExists (SName As String, _ Optional ByVal WB As Workbook) As Boolean On Error Reîncepeți în continuare Dacă WB nu este nimic, atunci setați WB = ThisWorkbook SheetExists = CBool ​​(Len (Sheets (SName) .Name )) Funcția de sfârșit