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
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.
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".
ResponderEliminarMi objetivo es activar una celda de una hoja en tal libro ya abierto. De antemano, gracias.