El objeto Workbook representa un libro de Excel y el objeto Worksheet representa una hoja de un libro de Excel. Asimismo, un libro de Excel puede tener más de una hoja lo cual significa que un objeto Workbook puede contener más de un objeto Worksheet.
Podemos utilizar Microsoft Visual Basic para Aplicaciones de código (VBA) para copiar o mover hojas dentro de un libro o entre libros. Esto es especialmente útil si se desea mover o copiar el número de hojas o si queremos realizar varias copias de una hoja..
1 Copiar en el mismo libro
(Para mayor visualización de la imagen, hacer click en la misma)
Por lo tanto al ejecutar la macro se copiará la hoja llamada “Tarea1” y la colocará justo después de la hoja llamada “Tarea2”. El parámetro “After” es el encargado de indicar que la copia se colocará después de la hoja Final.
- Si quisiéramos colocar la “hojainicial” antes de la “hojaFinal” utilizaríamos el parámetro “Before”:
Worksheets("Tarea1").Copy Before:=Worksheets("Tarea2")
- Si queremos colocar la copia de la “hojainicial” hasta el final de todas las hojas podemos hacer uso de la propiedad “Sheets.Count” que nos ayuda a saber el número total de hojas de un libro.
Worksheets("Tarea1").Copy After:=Sheets(Sheets.Count)
- También es posible utilizar la posición de la Hoja dentro de la colección Worksheets. Por ejemplo, si la hoja llamada “hojainicial” es la segunda hoja dentro del libro, se puede colocar:
Worksheets(2).Copy After:=Sheets(Sheets.Count)
De esta manera se realizará siempre la copia de la segunda hoja del libro sin importar su nombre.
2 Copiar a un libro diferente
Si deseamos hacer la copia de una hoja hacia un libro diferente se debe especificar tanto el libro origen como el libro destino. Por ejemplo, queremos copiar la primera hoja del Libro1 y colocarla en el Libro2 después de la tercera hoja.
Workbooks("Libro1").Worksheets(1).Copy After:=Workbooks("Libro2").Sheets(3)
Es importante que ambos libros estén abiertos para que se pueda realizar la copia adecuadamente.
**Realizado por Paola Vargas Vejarano**
05/04/2014 a las 12:47 pm
Como puedo realizar una copia de una hoja de un libro existente a un libro NUEVO por medio de macros??? gracias!!!
30/12/2014 a las 3:37 pm
Hola!
y si lo que quiero es copiar o enviar los datos de un formulario a unas celdas de un libro diferente?
06/06/2015 a las 11:01 am
Quisiera saber como podría cortar y copiar un gráfico a otra hoja en especifico. gracias
23/06/2015 a las 9:55 am
Tengo un libro externo y varias hoja como A B C D E etc. Y yo estoy trabajando en otro libro con hojas X Y.. mi pregunta es como puedo copiar en la hoja Y cumpliendo una condicion en la hoja X en la celda A1 como ser el nombre de la hoja del libro externo. A B C D etc.. porfavor si me entendieron mi problema me puedan ayudar
22/03/2016 a las 11:24 am
Yo lo que necesito es copiar una hoja o plantilla que se llama (Formato) con el nombre de la celda "H2" a un libro llamado listas 2016 y que me permita seguir acumulando hojas conforme cambie el consecutivo de "H2"
Son ustedes excelentes y de mucha ayuda
Gracias,
31/01/2017 a las 3:57 pm
Necesito una mano para resolver el tema, una macro que me copie varias hojas (grupo) de un libro a nuevo libro con la información valor.-
Lo he realizado con el grabador de macros pero como lo debo correr en varias versiones de excel en las más nuevas queda trabajando por varios minutos y en las versiones viejas lo realiza rápido.
Desde ya gracias si me pueden brindar info.
11/06/2021 a las 6:12 pm
Necesito el codigo para a partir de un formulario (Grid) en VB6, llevarlo a una hoja Excel desde VB6. Gracias...