Cómo seleccionar un libro de Excel en VBA

En muchas ocasiones al ejecutar una macro, se necesita información de otro archivo de Excel que puede o no esté abierto y puede o no, siempre esté en la misma posición. En resumidas cuentas necesitaremos saber cómo seleccionar un libro de Excel con visual basic.

Seleccionar un libro de Excel con visual basic


Para hacer referencia a un libro o a otro con una macro, es decir, activar un libro o cambiar de libro activo, se pueden emplear las siguientes formas:


Conocemos el nombre del archivo

• Si se conoce el nombre del archivo y está abierto.

Workbooks(“nombredelarchivo.xlsx”).Activate

Aquí suponemos que si en una semana o en un mes, volvemos a aplicar la macro, ese archivo nunca va a cambiar de nombre.


Conocemos la posición del libro

• Si quieres hacer referencia a su posición dentro de todos los libros abiertos.

Workbooks(1).Activate
Workbooks(2).Activate


Dependerá de la posición del libro que quieras seleccionar.


El nombre del archivo puede variar

• Si sabemos que el libro puede cambiar de posición y de nombre con el tiempo, la mejor opción declarar una variable String para el nombre del archivo y así citarlo directamente:

Dim Librodetrabajo As String
Librodetrabajo = ActiveWorkbook.name
Workbooks(Librodetrabajo).Activate


El código que siga, se aplicará a este nuevo libro.

1 comentario:

  1. Hola. Ya he puesto el primer código "Workbooks("P2.xlsx").Avtivate" y me aparece el error '438', si solo escribo Workbooks("P2.xlsx"), independientemente del libro, me aparece un cuadro de diálogo que enuncia "Error de compilación: El uso de la propiedad no es válido".
    Mi objetivo es activar una celda de una hoja en tal libro ya abierto. De antemano, gracias.

    ResponderEliminar

Otras entradas