Kopirajte od retka do posljednjeg retka s podacima na jedan list pomoću VBA u programu Microsoft Excel

Anonim
  • Makronaredba će dodati list s imenom Master u vašu radnu knjigu i kopirati ćelije sa svakog lista u vašoj radnoj knjizi na ovom radnom listu.
  • Prvi makro radi normalnu kopiju, a drugi makro kopira vrijednosti.
  • Podređene makronaredbe koriste dolje navedene funkcije, makronaredbe neće funkcionirati bez funkcija.
Sub CopyFromRow () Dim sh Kao radni list Dim DestSh Kao radni list Dim shLast Sve dok Dim Dim Last As Long If SheetExists ("Master") = True then MsgBox "Master List već postoji" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Radni listovi.Dodajte DestSh.Name = "Master" Za svako sh u ovoj radnoj knjizi.Radni listovi Ako je sh.Name DestSh.Name Onda ako je sh.UsedRange.Count> 1 Zatim Last = LastRow (DestSh) shLast = LastRow (sh) sh.Range ( sh.Rows (3), sh.Rows (shLast)). Kopiraj DestSh.Cells (Last + 1, 1) End If End If Next Application.ScreenUpdating = True End Sub Sub CopyFromRowValues ​​() Dim sh Kao radni list Dim DestSh kao radni list Dim shLast As Long Dim Last As Long If SheetExists ("Master") = True then MsgBox "Master Master List već postoji" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = "Master" za svaki sh U ovoj radnoj knjizi.Radni listovi Ako je sh.Name DestSh.Name Then If sh.UsedRange.Count> 1 Then Last = LastRow (DestSh) shLast = LastRow (sh) S sh.Range (sh.Rows (3), sh.Rows (shLast)) DestSh.Cells (Last + 1, 1) .Resize (.Rows.Count, _ .Columns.Count) .Value = .Vrednost End With End If End If Next Application.ScreenUpdating = True End Sub Funkcija LastRow (sh kao radni list) o grešci Nastavi sljedeći LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Greška pri ponovnom uključivanju Idi na 0 Završi funkciju Funkcija Lastcol (sh Kao radni list) On Greška Nastavi Sljedeći Lastcol = sh.Cells.Find (Što: = " *", _ After: = sh.Range (" A1 "), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _Direction Search: = xlPrevious, _ MatchCase: = False). Stupac pri pogrešci Idi na 0 Funkcija završetka Funkcija ListExists (SName As String, _ Opcionalno ByVal WB kao radna knjiga) Kao Boolean On Error Nastavi dalje Ako WB nije ništa Zatim postavite WB = ThisWorkbook SheetExists = CBool ​​(Len (Sheets (SName) .Name)) End Funkcija