Para abrir un libro de Excel desde otro con una macro se usa el método Workbooks.Open, indicando la ruta del archivo. Antes de escribir la macro hay que abrir el editor de Visual Basic para Aplicaciones (VBA), y para que la macro se ejecute, el libro que la contiene debe tener las macros habilitadas. ¿Cómo se hace cada paso?
Cómo abrir el editor de VBA.
El editor de Visual Basic se abre de cualquiera de estas formas:
- Con el atajo Alt + F11, que funciona siempre.
- Desde la pestaña «Programador», botón «Visual Basic». Si la pestaña no aparece, se activa en «Archivo», «Opciones», «Personalizar cinta de opciones», marcando «Programador».
- Con clic derecho sobre la pestaña de una hoja, «Ver código», que abre el editor directamente en el módulo de esa hoja.
Las macros generales se escriben en un módulo estándar: en el editor, «Insertar», «Módulo». Para ejecutar una macro desde el editor se ubica el cursor dentro de ella y se presiona F5; desde Excel, con Alt + F8, se elige la macro y «Ejecutar».
- Guía Laboral 2026
- Liquidador de pensiones en Colpensiones
- Liquidador de intereses judiciales y comerciales
Cómo abrir un archivo de Excel con macros.
Un libro con macros se guarda con extensión .xlsm. Al abrirlo, Excel muestra la barra amarilla «Advertencia de seguridad» con el botón «Habilitar contenido»; mientras no se habilite, las macros no se ejecutan.
Si el archivo se descargó de internet o llegó por correo, Excel puede bloquear las macros por completo y mostrar una barra roja de «Riesgo de seguridad». En ese caso, si el archivo es de una fuente confiable, se cierra, se hace clic derecho sobre él en el explorador de Windows, «Propiedades», y se marca la casilla «Desbloquear». Otra opción es guardar los archivos con macros en una carpeta definida como «Ubicación de confianza» en el Centro de confianza de Excel.
Macro para abrir un libro de Excel.
La instrucción básica es Workbooks.Open con la ruta completa del archivo:
Sub AbrirLibro()
Workbooks.Open Filename:="C:\Contabilidad\Ventas 2026.xlsx"
End Sub
La primera línea abre la macro y le da un nombre; la segunda abre el libro indicado, y la tercera cierra la macro. La ruta debe incluir la carpeta, el nombre y la extensión del archivo. Si el archivo no existe en esa ruta, la macro se detiene con un error.
Abrir un libro de la misma carpeta.
Escribir la ruta completa tiene un inconveniente: si los archivos se mueven a otra carpeta u otro equipo, la macro deja de funcionar. Cuando el libro que se quiere abrir está en la misma carpeta que el que tiene la macro, es mejor construir la ruta con ThisWorkbook.Path:
Sub AbrirLibroMismaCarpeta()
Dim ruta As String
ruta = ThisWorkbook.Path & Application.PathSeparator & "Ventas 2026.xlsx"
If Dir(ruta) = "" Then
MsgBox "No se encontró el archivo: " & ruta
Exit Sub
End If
Workbooks.Open Filename:=ruta
End Sub
Dir comprueba que el archivo exista antes de intentar abrirlo, y en lugar del error muestra un mensaje.
Elegir el archivo en una ventana.
Si el archivo cambia cada vez, la macro puede mostrar la ventana de «Abrir» para que el usuario lo elija:
Sub AbrirLibroElegido()
Dim archivo As Variant
archivo = Application.GetOpenFilename("Libros de Excel (*.xls*), *.xls*")
If archivo = False Then Exit Sub
Workbooks.Open Filename:=archivo
End Sub
Si el usuario cancela, GetOpenFilename devuelve Falso y la macro termina sin error.
Abrir, leer un dato y cerrar.
A veces el objetivo no es dejar el libro abierto, sino traer un dato de él. El libro se abre como solo lectura, se copia el valor y se cierra sin guardar:
Sub AbrirLeerYCerrar()
Dim libro As Workbook
Set libro = Workbooks.Open(Filename:=ThisWorkbook.Path & "\Ventas 2026.xlsx", ReadOnly:=True)
ThisWorkbook.Worksheets(1).Range("B2").Value = libro.Worksheets("Resumen").Range("B10").Value
libro.Close SaveChanges:=False
End Sub
Para datos que deben actualizarse siempre, una alternativa sin macros es una fórmula que haga referencia al otro libro, como se explica en el artículo sobre cómo vincular celdas entre hojas y libros.
Macros de ejemplo:
El archivo .txt contiene seis macros: abrir con ruta fija, abrir desde la misma carpeta, elegir el archivo en una ventana, abrir como solo lectura y traer un dato, abrir solo si no está abierto y activar una hoja, y abrir la ruta escrita en una celda. Descargar archivo.
Preguntas frecuentes.
A continuación respondemos las preguntas frecuentes de nuestros lectores.
¿Cómo abro el editor de VBA en Excel?
Con Alt + F11, o desde la pestaña «Programador», «Visual Basic».
¿Cuál es la macro para abrir un archivo de Excel?
Workbooks.Open Filename:="ruta\archivo.xlsx", con la ruta completa o construida con ThisWorkbook.Path.
¿Por qué no se ejecutan las macros de mi archivo?
Porque no se habilitó el contenido, porque el archivo se guardó como .xlsx, o porque Windows lo bloqueó por venir de internet; en ese caso se desbloquea en sus propiedades.
¿Cómo abro un libro que está en la misma carpeta?
Construyendo la ruta con ThisWorkbook.Path & "\nombre.xlsx".
¿Cómo abro un libro sin que se puedan hacer cambios?
Con el argumento ReadOnly:=True de Workbooks.Open.