Copie una fila o filas de cada hoja en una hoja usando VBA en Microsoft Excel

Anonim
  • La macro agregará una hoja con el nombre Maestro a su libro de trabajo y copiará las celdas de cada hoja de su libro de trabajo en esta hoja de trabajo.
  • La primera macro realiza una copia normal y la segunda macro copia los valores.
  • Los subwoofers de la macro utilizan las siguientes funciones, la macro no funcionará sin las funciones.

Utilice este sh.Rows ("1: 4"). Copiar para copiar más de una fila.

Sub Test4 () Dim sh As Worksheet Dim DestSh As Worksheet Dim Last Tan Long If SheetExists ("Master") = True Then MsgBox "La hoja maestra ya existe" Salir de Sub End If Application.ScreenUpdating = False Establecer DestSh = Worksheets.Add DestSh .Name = "Master" para cada sh En ThisWorkbook.Worksheets If sh.Name DestSh.Name Then If sh.UsedRange.Count> 1 Then Last = LastRow (DestSh) sh.Rows ("1"). Copiar DestSh.Cells ( Último + 1, 1) End If End If Next Application.ScreenUpdating = True End Sub Sub Test4_Values ​​() Dim sh As Worksheet Dim DestSh As Worksheet Dim Last As Long If SheetExists ("Master") = True Then MsgBox "La hoja maestra ya Exit Sub End If Application.ScreenUpdating = False Set DestSh = Worksheets.Add DestSh.Name = "Master" For Each sh En ThisWorkbook.Worksheets If sh.Name DestSh.Name Then If sh.UsedRange.Count> 1 Then Last = LastRow (DestSh) Con sh.Rows ("1") DestSh.Cells (Last + 1, 1) .Resize (.Rows.Count, _ .Columns.Count) .Value = .Value End With End If End If Next Application .Piedra nUpdating = True End Sub Function LastRow (sh As Worksheet) En caso de error Reanudar Next LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row On Error GoTo 0 End Function Función Lastcol (sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find (Qué: = "*", _ Después: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False ) .Columna en caso de error Ir a 0 Función final Función SheetExists (SName como cadena, _ ByVal opcional WB como libro de trabajo) Como booleano en caso de error Reanudar a continuación si WB no es nada Entonces establezca WB = ThisWorkbook SheetExists = CBool ​​(Len (Sheets (SName) .Name )) Finalizar función