Copiar una columna o columnas de cada hoja en una hoja utilizando Microsoft Excel VBA en
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.
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 denominada «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 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]