Kopējiet no rindas līdz pēdējai rindai ar datiem vienā lapā, izmantojot Microsoft Excel VBA

Anonim
  • Makro pievienos jūsu darbgrāmatai lapu ar nosaukumu Meistars un kopēs šūnas no katras šīs darblapas darbgrāmatas lapas.
  • Pirmais makro veic parastu kopiju, bet otrs makro kopē vērtības.
  • Makro apakšpakalpojumi izmanto tālāk norādītās funkcijas, makro nedarbosies bez funkcijām.
Sub CopyFromRow () Dim sh kā darblapa Dim DestSh kā darblapa Dim shLast cik ilgi aptumšojas tik ilgi, ja SheetExists ("Master") = True, tad MsgBox "Lapu šablons jau pastāv" Exit Sub End if Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = "Master" Par katru sh šajā darbagrāmatā. sh.Rows (3), sh.Rows (shLast)). Copy DestSh.Cells (Last + 1, 1) End If End, If Next Application.ScreenUpdating = True End Sub Sub CopyFromRowValues ​​() Dim sh Kā darblapa Dim DestSh kā darblapa Dim shLast cik ilgi aptumšo tik ilgi, ja SheetExists ("Master") = True, tad MsgBox "Lapu šablons jau pastāv" Exit Sub End if Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = "Master" katram sh šajā darbgrāmatā. sh.Rows (shLast)) DestSh.Cells (pēdējais + 1, 1). Mainīt izmēru (.Rows.Count, _ .Columns.Count) .Value = .Value End with End If End If Next Application.ScreenUpdating = True End Sub Funkcija LastRow (sh kā darblapa) Par kļūdu Atsākt nākamo LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). *", _ Pēc: = sh.Range (" A1 "), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Slejas kļūda GoTo 0 beigu funkcijas funkciju lapaEsošs (SName kā virkne, _ pēc izvēles ByVal WB kā darbgrāmata) Kā Būla kļūda Atsākt nākamo, ja WB nav nekas, tad iestatiet WB = ThisWorkbook SheetExists = CBool ​​(Len (Sheets (SName) .Name)) beigu funkcija