Este artículo demostrará cómo usar VBA para copiar un rango de celdas en otra hoja o libro de trabajo.
Para obtener más información, lea nuestro Tutorial de copia y pegado de VBA.
Copiar en hoja existente
Para copiar un rango de celdas de una hoja a otra hoja que ya existe podemos usar el siguiente código:
123456 | Sub CopyAndPasteActiveSheet.Range ("A1: D10"). SeleccioneSelección. CopiarHojas ("Hoja2"). SeleccioneActiveSheet.PasteEnd Sub |
Esto copiará la información almacenada en el rango de hoja activa A1: D10 y la pegará en una Hoja2 existente. Como no hemos especificado el rango para seleccionar en la Hoja 2, lo pegará automáticamente en Rango (“A1”). También pegará cualquier formato en la Hoja 2 que estuviera en el rango de la Hoja 1.
Si deseamos pegarlo en una ubicación diferente en la Hoja 2, podemos seleccionar la celda o rango de inicio para pegar. El siguiente código pegará la información a partir de la celda E2.
1234567 | Sub CopyAndPasteToRangeActiveSheet.Range ("A1: D10"). SeleccioneSelección. CopiarHojas ("Hoja2"). SeleccioneRango ("E1"). SeleccionarActiveSheet.PasteEnd Sub |
Para pegar los valores en la Hoja 2 y no incluir el formato, podemos usar el siguiente código. Una vez más, no tenemos que especificar el rango a la página si deseamos pegar en la celda A1.
123456 | Sub CopyAndPasteValuesActiveSheet.Range ("A1: D10"). SeleccioneSelección. CopiarHojas ("Hoja2"). SeleccioneSelection.PasteSpecial Paste: = xlPasteValuesEnd Sub |
Copiar en hoja nueva
Para copiar y luego pegar en una nueva hoja, podemos usar el siguiente código:
123456 | Sub CopyAndPasteNewSheetActiveSheet.Range ("A1: D10"). SeleccioneSelección. CopiarSheets.Add After: = ActiveSheetActiveSheet.PasteEnd Sub |
Para copiar valores, una vez más podemos usar xlPasteValues.
Copiar a libro de trabajo existente
Para copiar y pegar en un libro de trabajo diferente por completo, podemos tener ambos libros de trabajo ya abiertos o podemos usar el código para abrir otro libro de trabajo y luego pegarlo en ese libro de trabajo.
Este código a continuación se copia en un libro de trabajo existente que ya está abierto.
1234567 | Sub CopyAndPasteExistingBookRango ("A1: D10"). SeleccionarSelección. CopiarWindows ("CombinedBranches.xlsx"). ActivarSheets.Add After: = ActiveSheetActiveSheet.PasteEnd Sub |
Programación VBA | ¡Code Generator funciona para usted!
Este código a continuación se copiará y pegará en una nueva hoja en un segundo libro de trabajo que se abrirá con el código.
1234567 | Sub CopyAndPasteOpenWorkbookRango ("A1: D9"). SeleccionarSelección. CopiarWorkbooks.Open Filename: = "C: \ ExcelFiles \ CombinedBranches.xlsx"Sheets.Add After: = ActiveSheetActiveSheet.PasteHoja final |
SUGERENCIA: reemplace el nombre del archivo en el argumento Workbooks.Open con su propio nombre de archivo!
Copiar a un libro de trabajo nuevo
También podemos copiar y pegar en un nuevo libro de trabajo.
123456 | Sub CopyAndPasteNewWorkbookRango ("A1: D9"). SeleccionarSelección. CopiarCuadernos de trabajo AgregarActiveSheet.PasteEnd Sub |