
¡Hola, futuro maestro de VBA! Hoy vamos a aprender cómo copiar datos entre libros de Excel usando código. Imagina que tienes dos cajas, cada una llena de juguetes (datos). Queremos tomar algunos juguetes de una caja y ponerlos en la otra.
Preparando el Escenario
Primero, necesitamos abrir nuestros dos libros de Excel. Piénsalos como si fueran las cajas de juguetes que mencionamos. Uno será nuestra fuente de datos, la caja donde están los juguetes que queremos. El otro será el destino, la caja vacía donde los pondremos.
En VBA, usamos objetos para representar estos libros. Piensa en un objeto como una etiqueta que le ponemos a cada caja para saber cuál es cuál. Usaremos el objeto Workbook. Este objeto representa un libro de Excel.
Must Read
Conectando los Libros
Para decirle a VBA cuáles son nuestros libros de fuente y destino, usaremos el siguiente código:
Dim libroFuente As Workbook
Dim libroDestino As Workbook
Set libroFuente = Workbooks.Open("C:\Ruta\al\libro_fuente.xlsx")
Set libroDestino = Workbooks.Open("C:\Ruta\al\libro_destino.xlsx")
Reemplaza "C:\Ruta\al\libro_fuente.xlsx" y "C:\Ruta\al\libro_destino.xlsx" con las rutas reales de tus archivos. Como si pusieras las etiquetas correctas en cada caja.

Seleccionando las Hojas
Dentro de cada libro, tenemos hojas. Piensa en las hojas como compartimentos dentro de cada caja. Necesitamos decirle a VBA de qué compartimento queremos tomar los juguetes y en cuál los queremos poner.
Para seleccionar una hoja, usamos el objeto Worksheet:
Dim hojaFuente As Worksheet
Dim hojaDestino As Worksheet
Set hojaFuente = libroFuente.Sheets("Hoja1")
Set hojaDestino = libroDestino.Sheets("Hoja2")
Aquí, "Hoja1" y "Hoja2" son los nombres de las hojas que queremos usar. Asegúrate de usar los nombres correctos de tus hojas. Es como revisar que estés abriendo el compartimento correcto.

Copiando los Datos
Ahora viene la parte emocionante: ¡copiar los datos! Imagina que estamos tomando juguetes específicos de un compartimento y colocándolos en otro.
Para copiar datos de un rango de celdas, usamos el método Copy. Por ejemplo, para copiar las celdas de A1 a B10 de la hoja fuente y pegarlas en la celda A1 de la hoja destino, usaríamos:

hojaFuente.Range("A1:B10").Copy hojaDestino.Range("A1")
¡Atención! El destino es solo la celda superior izquierda. Excel se encarga de pegar el resto de los datos a partir de esa celda.
Otra forma de copiar datos es usando Value. Esto copia solo el valor de las celdas, sin formato:
hojaDestino.Range("A1:B10").Value = hojaFuente.Range("A1:B10").Value
Esta opción es útil si solo te interesan los datos y no el formato (color de fondo, tipo de letra, etc.). Es como si solo tomaras el juguete sin la caja en la que venía.

Cerrando los Libros
Una vez que hemos terminado de copiar los datos, es importante cerrar los libros. Como guardar las cajas de juguetes de nuevo.
libroFuente.Close SaveChanges:=False
libroDestino.Close SaveChanges:=True
libroFuente.Close SaveChanges:=False cierra el libro fuente sin guardar los cambios. libroDestino.Close SaveChanges:=True cierra el libro destino y guarda los cambios.
¡Felicidades! Has aprendido cómo copiar datos de un libro a otro en Excel VBA. Recuerda practicar con diferentes libros y hojas para dominar esta habilidad.