Копирайте ред или редове от всеки лист в един лист с помощта на VBA в Microsoft Excel

Anonim
  • Макросът ще добави лист с името Master към вашата работна книга и ще копира клетките от всеки лист във вашата работна книга в този работен лист.
  • Първият макрос прави нормално копие, а вторият макрос копира стойностите.
  • Поддръжките на макроса използват функциите по -долу, макросите няма да работят без функциите.

Използвайте този sh.Rows ("1: 4"). Копирайте, за да копирате повече от един ред.

Sub Test4 () Dim sh Като работен лист Dim DestSh Като работен лист Dim Last As Long If SheetExists ("Master") = True then MsgBox "Master Master вече съществува" Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh .Name = "Master" За всеки sh в ThisWorkbook.Worksheets Ако sh.Name DestSh.Name Тогава Ако sh.UsedRange.Count> 1 Тогава Last = LastRow (DestSh) sh.Rows ("1"). Копирайте DestSh.Cells ( Last + 1, 1) End If End If Next Application.ScreenUpdating = True End Sub Sub Sub4 съществуват "Изход за подкрай, ако Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name =" Master "За всеки sh в ThisWorkbook.Worksheets Ако sh.Name DestSh.Name Тогава Ако sh.UsedRange.Count> 1 Тогава Последно = LastRow (DestSh) С sh.Rows ("1") DestSh.Cells (Last + 1, 1) .Resize (.Rows.Count, _ .Columns.Count) .Value = .Value End With End If End Ако следващото приложение .Скрит nUpdating = True End Sub Function LastRow (sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Грешка при влизане GoTo 0 End Функция Функция Lastcol (sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False Колона при грешка GoTo 0 End Функция Функция SheetExt (SName As String, _ Незадължителна ByVal WB като работна книга) Като Boolean On Error Възобновяване на следващото След WB Няма нищо След това задайте WB = ThisWorkbook SheetExists = CBool ​​(Len (Sheets (SName). )) Крайна функция