Nukopijuokite nuo eilutės iki paskutinės eilutės su duomenimis į vieną lapą naudodami „Microsoft Excel“ VBA

Anonim
  • Makrokomanda pridės lapą su pavadinimu „Master“ į jūsų darbo knygą ir nukopijuos langelius iš kiekvieno šio darbalapio darbaknygės lapo.
  • Pirmoji makrokomanda kopijuoja įprastai, o antroji - kopijuoja reikšmes.
  • Makrokomandos antrininkai naudoja toliau nurodytas funkcijas, makrokomandos neveiks be funkcijų.
Sub CopyFromRow () Dim sh kaip darbalapis Dim DestSh kaip darbalapis Dim shLast tol, kol Dim Dim paskutinį laiką, jei SheetExists ("Master") = tiesa Tada MsgBox "The sheet Master jau egzistuoja" Exit Sub End if Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = "Šablonas" kiekvienam šiai šioje darbo knygoje. Darbo lapai Jei sh.Name DestSh.Name Tada Jei sh.UsedRange.Count> 1 Tada Last = LastRow (DestSh) shLast = LastRow (sh) sh.Range ( sh.Rows (3), sh.Rows (shLast)). Copy DestSh.Cells (Paskutinis + 1, 1) Pabaiga, jei pabaiga, jei kita programa. ScreenUpdating = True End Sub Sub CopyFromRowValues ​​() Dim sh As Workheet Dim DestSh As Workheet Dim shLast As Long Dim Last Niin Long if SheetExists ("Master") = True then MsgBox "The sheet Master jau egzistuoja" 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 Tada If sh.UsedRange.Count> 1 Tada Last = LastRow (DestSh) shLast = LastRow (sh) Su sh.Range (sh.Rows (3), sh.Rows (shLast)) DestSh.Cells (Paskutinis + 1, 1). Keisti dydį (.Rows.Count, _ .Columns.Count) .Value = .Value End With End Jei End If Next Application.ScreenUpdating = True End Sub Funkcija LastRow (sh kaip darbalapis) Įvyko klaida Tęsti kitą LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = Netiesa. *", _ After: = sh.Range (" A1 "), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Stulpelio klaida „GoTo 0“ pabaigos funkcijų lapas „Egzistuoja“ (SName kaip eilutė, _ pasirinktinai „ByVal WB“ kaip darbaknygė) „Boolean On Error“ Tęsti toliau, jei WB yra nieko, tada nustatykite WB = ThisWorkbook SheetExists = CBool ​​(Len (Sheets (SName) .Name)) Pabaigos funkcija