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.Workbooks
es globalApplication
puede 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
Item
nombre 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")