Kopirajte od vrstice do zadnje vrstice s podatki na en list z uporabo VBA v Microsoft Excelu

Anonim
  • Makro bo v vaš delovni zvezek dodal list z imenom Master in kopiral celice z vsakega lista v vašem delovnem zvezku na tem delovnem listu.
  • Prvi makro naredi običajno kopijo, drugi makro pa kopira vrednosti.
  • Podrejene makre uporabljajo spodnje funkcije, makrone ne bodo delovale brez funkcij.
Sub CopyFromRow () Dim sh Kot delovni list Dim DestSh Kot delovni list Dim shLast As Long Dim Last As Long If SheetExists ("Master") = True then MsgBox "Master Master List že obstaja" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Delovni listi.Dodajte DestSh.Name = "Master" za vsak sh v tej delovni knjigi. Delovni listi Če sh.Name DestSh.Name Potem, če sh.UsedRange.Count> 1 Potem Last = LastRow (DestSh) shLast = LastRow (sh) sh.Range ( sh.Rows (3), sh.Rows (shLast)). Kopiraj DestSh.Cells (Last + 1, 1) End If End Če Naslednja aplikacija.ScreenUpdating = True End Sub Sub CopyFromRowValues ​​() Dim sh kot delovni list Dim DestSh kot delovni list Dim shLast As Long Dim As As If SheetExists ("Master") = True then MsgBox "Master Master List že obstaja" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = "Master" za vsako sh V tej delovni knjigi. Delovni listi Če ime sh.Naziv DestSh.Name Potem, če sh.UsedRange.Count> 1 Potem Last = LastRow (DestSh) shLast = LastRow (sh) Z sh.Range (sh.Rows (3), sh.Rows (shLast)) DestSh.Cells (Last + 1, 1) .Resize (.Rows.Count, _ .Columns.Count) .Value = .Value End With End If End If Next Application.ScreenUpdating = True End Sub Funkcija LastRow (sh kot delovni list) o nadaljevanju napake naslednja lastRow = sh.Cells.Find (Kaj: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Napaka pri vklopu GoTo 0 End Function Function Lastcol (sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find (Kaj: = " *", _ After: = sh.Range (" A1 "), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Stolpec pri napaki Pojdi na 0 Funkcija konca funkcije Funkcija SheetExists (SName As String, _ Izbirno ByVal WB kot delovni zvezek) Kot Boolean On Error Nadaljuj naprej Če WB ni nič, potem nastavite WB = ThisWorkbook SheetExists = CBool ​​(Len (Sheets (SName). Ime)) Končna funkcija