Copie una columna o columnas de cada hoja en una hoja usando VBA en Microsoft Excel

Anonim

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 los empleados en forma de un libro de trabajo de Excel que contiene tres hojas con los detalles departamentales, personales y de contacto de los empleados.

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".

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

Explicación del código

Worksheets.Add (after: = Worksheets ("Principal"))

El código anterior se usa para insertar nuevas hojas de trabajo después de la hoja de trabajo "Principal".

Si Source.Name "Master" y Source.Name "Main", entonces

Terminara si

El código anterior se utiliza para restringir la copia de datos de la hoja "Maestra" y "Principal".

Source.UsedRange.Copy Destination.Columns (último)

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

Para cada fuente de este libro de trabajo.

Si Source.Name = "Master" Entonces

MsgBox "La hoja maestra ya existe"

Salir de Sub

Terminara si

próximo

El código anterior se usa 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 a continuación para obtener el código

 Opción Explicit Sub CopyColumns () Atenuar origen como hoja de trabajo Atenuar destino como hoja de trabajo Atenuar último como largo Application.ScreenUpdating = False 'Verificando si la hoja "maestra" ya existe en el libro de trabajo para cada fuente en este libro de trabajo.Hojas de trabajo If Source.Name = "Master" Entonces MsgBox "La hoja maestra ya existe" Salir Sub End If Next 'Insertar nuevas hojas de trabajo en el libro de trabajo Establecer destino = Hojas de trabajo.Agregar (después: = Hojas de trabajo ("Principal"))' Cambiar el nombre de la hoja de trabajo Destino.Nombre = "Maestro" 'Bucle a través de las hojas de trabajo en el libro de trabajo Para cada fuente en este libro de trabajo. xlCellTypeLastCell) .Column If Last = 1 Then 'Pegando los datos en la hoja de destino 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. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico