A veces, se convierte en un trabajo de rutina copiar datos de varias hojas para la misma columna. Este paso se puede evitar mediante la automatización. Si desea hacer una hoja consolidada después de copiar datos de una columna de todas y cada una de las hojas en una hoja, entonces debería leer este artículo.

En este artículo, crearemos una macro para copiar datos de una columna específica y pegarlos en una nueva hoja.

Los datos sin procesar para este ejemplo consisten en datos de empleados en forma de un libro de trabajo de Excel que contiene tres hojas con los detalles de los departamentos, personales y de contacto de los empleados.

ArrowRaw

Para copiar datos de diferentes hojas en una nueva hoja, hemos creado una macro «CopiarColumnas». Esta macro se puede ejecutar haciendo clic en el botón «Ejecutar macro» en la hoja «Principal».

ArrowMain

La macro «CopiarColumnas» insertará una nueva hoja denominada «Maestra» después de la hoja «Principal». La hoja “maestra” contendrá datos consolidados de todas las hojas.

ArrowOutput

Explicación del código

Worksheets.Add (after: = Worksheets («Principal»))

El código anterior se utiliza para insertar nuevas hojas de trabajo después de la hoja de trabajo «Principal».

If Source.Name <> «Master» And Source.Name <> «Main» Then End If Above código se utiliza para restringir la copia de datos de la hoja «Master» y «Main».

Source.UsedRange.Copy Destination.Columns (Last)

El código anterior se utiliza para copiar datos de la hoja de origen a la hoja de destino.

Para cada fuente en ThisWorkbook.Worksheets Si Source.Name = «Master», entonces MsgBox «La hoja maestra ya existe»

Exit Sub End Si se usa el código Next Above para verificar si la hoja «Maestra» ya existe en el libro de trabajo. La macro detendrá la ejecución si la hoja «Maestra» ya existe en el libro de trabajo.

Siga el código a continuación

Option Explicit

Sub CopyColumns()

Dim Source As Worksheet

Dim Destination As Worksheet

Dim Last As Long

Application.ScreenUpdating = False

'Checking whether "Master" sheet already exists in the workbook

For Each Source In ThisWorkbook.Worksheets

If Source.Name = "Master" Then

MsgBox "Master sheet already exist"

Exit Sub

End If

Next

'Inserting new worksheets in the workbook

Set Destination = Worksheets.Add(after:=Worksheets("Main"))

'Renaming the worksheet

Destination.Name = "Master"

'Looping through the worksheets in the workbook

For Each Source In ThisWorkbook.Worksheets





If Source.Name <> "Master" And Source.Name <> "Main" Then



'Finding the last column from the destination sheet

Last = Destination.Range("A1").SpecialCells(xlCellTypeLastCell).Column



If Last = 1 Then

'Pasting the data in the destination sheet

Source.UsedRange.Copy Destination.Columns(Last)

Else

Source.UsedRange.Copy Destination.Columns(Last + 1)

End If

End If

Next

Columns.AutoFit

Application.ScreenUpdating = True

End Sub

Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]