
Hola, estudiantes! ¿Alguna vez necesitaste copiar información de una hoja de cálculo de Excel a otra de manera automática? ¡VBA (Visual Basic for Applications) al rescate! Vamos a desglosar cómo hacerlo de una forma sencilla y comprensible.
Primero, aclaremos algunos términos. Excel es el programa de hojas de cálculo que todos conocemos y usamos. Una hoja es una página individual dentro de un libro de Excel. Un libro es el archivo de Excel completo, que contiene una o varias hojas.
Imagina que tienes una hoja con los nombres y calificaciones de tus compañeros de clase. Quieres copiar sólo los nombres a otra hoja para crear una lista de asistencia. VBA nos permite automatizar esta tarea.
Must Read
¿Qué es VBA?
VBA es un lenguaje de programación integrado en Excel. Piensa en él como un robot que puedes programar para que haga tareas repetitivas en Excel por ti. Con VBA, puedes escribir instrucciones que le digan a Excel qué hacer, como copiar datos de una hoja a otra.
Para acceder a VBA, abre Excel y presiona Alt + F11. Esto abrirá el editor de VBA, donde escribirás tu código.
En el editor de VBA, inserta un nuevo módulo. Ve a Insertar > Módulo. Aquí es donde escribirás tu código VBA.

El Código Básico
El código VBA para copiar datos sigue una estructura básica. Aquí te presento un ejemplo sencillo, y luego lo explicaremos paso a paso.
Sub CopiarDatos()
Dim hojaOrigen As Worksheet
Dim hojaDestino As Worksheet
Dim ultimaFila As Long
Dim i As Long
Set hojaOrigen = ThisWorkbook.Sheets("Hoja1")
Set hojaDestino = ThisWorkbook.Sheets("Hoja2")
ultimaFila = hojaOrigen.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To ultimaFila
hojaDestino.Cells(i, 1).Value = hojaOrigen.Cells(i, 1).Value
Next i
End Sub
Desglosando el Código
Ahora, veamos qué hace cada línea de este código.
Sub CopiarDatos(): Esto define el inicio de una subrutina llamada "CopiarDatos". Piensa en una subrutina como un pequeño programa dentro de Excel.

Dim hojaOrigen As Worksheet y Dim hojaDestino As Worksheet: Estas líneas declaran variables. Una variable es como un contenedor para guardar información. Aquí, estamos creando dos variables llamadas "hojaOrigen" y "hojaDestino" que guardarán información sobre las hojas de Excel que usaremos.
Dim ultimaFila As Long y Dim i As Long: Similar a lo anterior, declaramos variables para guardar el número de la última fila con datos y para usar como contador en un bucle.
Set hojaOrigen = ThisWorkbook.Sheets("Hoja1"): Esta línea asigna la hoja de Excel llamada "Hoja1" a la variable "hojaOrigen". ThisWorkbook se refiere al libro de Excel actual. Asegúrate de reemplazar "Hoja1" con el nombre de la hoja donde están tus datos originales.

Set hojaDestino = ThisWorkbook.Sheets("Hoja2"): De manera similar, esta línea asigna la hoja llamada "Hoja2" a la variable "hojaDestino". Reemplaza "Hoja2" con el nombre de la hoja donde quieres copiar los datos.
ultimaFila = hojaOrigen.Cells(Rows.Count, 1).End(xlUp).Row: Esta línea encuentra el número de la última fila que contiene datos en la columna A de la hoja de origen. Es muy importante para saber cuántas filas copiar.
For i = 1 To ultimaFila: Esto inicia un bucle. Un bucle repite un conjunto de instrucciones varias veces. En este caso, el bucle se repetirá desde la fila 1 hasta la última fila con datos.
hojaDestino.Cells(i, 1).Value = hojaOrigen.Cells(i, 1).Value: Esta es la línea clave. Copia el valor de la celda en la fila "i" y columna 1 (columna A) de la hoja de origen a la celda correspondiente en la hoja de destino.

Next i: Esto indica el final del bucle. El bucle vuelve a empezar con la siguiente fila.
End Sub: Esto marca el final de la subrutina.
Cómo Ejecutar el Código
Después de escribir el código, puedes ejecutarlo. En el editor de VBA, coloca el cursor en cualquier lugar dentro de la subrutina "CopiarDatos" y presiona la tecla F5. ¡Verás cómo los datos se copian automáticamente de una hoja a otra!
Recuerda modificar los nombres de las hojas en el código para que coincidan con los nombres de tus hojas de Excel. ¡Experimenta con este código y descubre el poder de VBA!