Seleccionar libro utilizando VBA
Esta página muestra cómo puede asignar un libro de trabajo abierto a una variable Workbook utilizando una sentencia Set.
Esta es la forma preferida de programar frente al uso de ActiveWorkbook (usando Select).
Seleccionar libro por nombre
La propiedad Item de la colección Workbooks se utiliza para devolver un único objeto Workbook de la colección. Se llama así:
Dim wb As Workbook
Set wb = Application.Workbooks.Item(Index:="Demo.xlsx")
Workbook para seleccionar ya está abierto en Excel.
La colección Workbooks se obtiene aquí a partir del procedimiento Application.Workbooks.
El procedimiento Item devuelve un objeto de tipo Workbook que se asigna opcionalmente a una variable wb.
Normalmente en Index se utiliza el nombre del fichero para identificarlo, aunque estrictamente hablando se podría utilizar el número de posición en la colección.
... o más corto:
Dim wb As Workbook
Set wb = Workbooks("Demo.xlsx")
- Porque el
Application.Workbookses globalApplicationpuede omitirse de la declaración. - Una práctica habitual con los elementos de la colección es utilizar una abreviatura: En lugar del
collection.Item(...)el más cortocollection(...)se utiliza. - Como no aclara las cosas, también omitimos el
Itemnombre del parámetro(Index:=...)
Seleccionar libro con nombre de variable
La mayoría de las veces querrá aplicar sus procedimientos a nombres de archivos variables.
Para ello utilizará una variable String a la que se asignará un valor de alguna manera, por ejemplo, utilizando un cuadro de diálogo de selección de archivos.
Dim strWorkbook As String: strWorkbook =
Dim wb As Workbook
Set wb = Workbooks(strWorkbook)
Seleccionar libro y hoja
Normalmente querrá actuar sobre una hoja de cálculo del libro de trabajo. A continuación se muestra un ejemplo de cómo hacerlo. Vea también Seleccionar hoja de trabajo usando VBA.
Dim strWorkbook As String: strWorkbook = "Demo.xlsx"
Dim wb As Workbook
Set wb = Workbooks(strWorkbook)
Dim ws As Worksheet
Set ws = wb.Worksheets("Data")