Esta guía le presentará cómo trabajar con Objeto de libro de trabajo en VBA.
El objeto del libro de trabajo
Primero, para interactuar con los libros de trabajo en VBA, debe comprender el Objeto del libro de trabajo.
Con el objeto de libro de trabajo, puede hacer referencia a los libros de trabajo por su nombre de esta manera:
1 | Libros de trabajo ("Libro2.xlsm"). Activar |
Sin embargo, este código solo funcionará si el libro de trabajo está abierto. Si el libro de trabajo está cerrado, deberá proporcionar la ruta completa del libro de trabajo:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
En lugar de escribir la ruta completa, si su libro de trabajo deseado está en el mismo directorio que el libro de trabajo donde está almacenado su código, puede usar este código de línea para abrir el libro de trabajo:
1 | Workbooks.Open (ThisWorkbook.Path & "\ book2.xlsm") |
Esto hace uso del objeto ThisWorkbook que discutiremos en la siguiente sección.
Número de índice del libro de trabajo
Por último, puede hacer referencia a los libros de trabajo por su "Número de índice". El número de índice de un libro de trabajo corresponde al orden en que se abrió el libro de trabajo (técnicamente es la posición del libro de trabajo en la Colección de libros de trabajo).
1 | Libros de trabajo (1) .Activar |
Esto es útil si desea hacer algo como cerrar el primer (o último) libro abierto.
Activar libro de trabajo, ActiveWorkbook y ThisWorkbook
Si un libro de trabajo es NO ACTIVO, puede acceder a los objetos del Libro de trabajo de esta manera:
1 | Libros de trabajo ("Libro2.xlsm"). Hojas ("Hoja1"). Rango ("A1"). Valor = 1 |
Sin embargo, si el libro de trabajo está activo, puede omitir el objeto del libro de trabajo:
1 | Hojas ("Hoja1"). Rango ("A1"). Valor = 1 |
Y si desea interactuar con la hoja activa del libro de trabajo, también puede omitir el objeto hojas:
1 | Rango ("A1"). Valor = 1 |
Activar libro de trabajo
Para activar un libro de trabajo, use el Activar método.
1 | Libros de trabajo ("Libro2.xlsm"). Activar |
Ahora puede interactuar con los objetos de Book2 sin indicar explícitamente el nombre del libro de trabajo.
ActiveWorkbook
los ActiveWorkbook el objeto siempre se refiere al libro de trabajo activo. Esto es útil si desea asignar el ActiveWorkbook a una variable para usar más tarde.
12 | Dim wb como libro de trabajoEstablecer wb = ActiveWorkbook |
Este libro de trabajo
los Este libro de trabajo El objeto siempre se refiere al libro de trabajo donde se almacena el código en ejecución. Para activar ThisWorkbook, use esta línea de código:
1 | ThisWorkbook.Activate |
Libro de trabajo abierto
Para abrir un libro de trabajo, use el Método abierto:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
El libro de trabajo recién abierto siempre se convertirá en el ActiveWorkbook, lo que le permite interactuar fácilmente con él.
1 | ActiveWorkbook.Save |
El método abierto tiene varios otros argumentos, lo que le permite abrir un libro de trabajo protegido con contraseña y más en modo de solo lectura. Se trata aquí en nuestro artículo sobre apertura / cierre de libros de trabajo.
Abrir y asignar a variable
También puede abrir un libro de trabajo y asignarlo a una variable al mismo tiempo:
12 | Dim wb como libro de trabajoEstablezca wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Diálogo Abrir archivo
También puede activar el cuadro de diálogo Abrir archivo de esta manera:
12345678 | Sub OpenWorkbook ()Dim strFile como cadenastrFile = Application.GetOpenFilename ()Workbooks.Open (strFile)End Sub |
Crear nuevo (agregar) libro de trabajo
Esta línea de código creará un nuevo libro de trabajo:
1 | Cuadernos de trabajo Agregar |
El nuevo libro ahora se convierte en el ActiveWorkbook, lo que le permite interactuar con él (por ejemplo, guardar el nuevo libro de trabajo).
Agregar nuevo libro de trabajo a la variable
También puede agregar un nuevo libro de trabajo directamente a una variable:
12 | Dim wb como libro de trabajoEstablecer wb = Workbooks.Add |
Cerrar libro de trabajo
Cerrar y guardar
Para cerrar un libro de trabajo con guardar, use el Método de cierre con Guardar cambios establecido en VERDADERO:
1 | ActiveWorkbook.Close SaveChanges: = Verdadero |
Cerrar sin guardar
Para cerrar sin guardar, configure Guardar cambios igual a FALSO:
1 | ActiveWorkbook.Close SaveChanges: = Falso |
Libro de trabajo Guardar como
los Método SaveAs se utiliza para guardar un libro como.
Para guardar un libro de trabajo con un nuevo nombre, en el mismo directorio, puede implicar usar esto:
1 | ActiveWorkbook.SaveAs "nuevo" |
donde "nuevo" es el nuevo nombre de archivo.
Para guardar un libro de trabajo en un nuevo directorio con una extensión de archivo específica, simplemente especifique el nuevo directorio y el nombre del archivo:
1 | ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm" |
Otros ejemplos de VBA de libro de trabajo
Nombre del libro de trabajo
Para obtener el nombre de un libro de trabajo:
1 | MsgBox ActiveWorkbook.Name |
Proteger el libro de trabajo
Para proteger la estructura del libro de trabajo de la edición, puede utilizar el Método de protección (contraseña opcional):
1 | Libros de trabajo ("book1.xlsm"). Proteger "contraseña" |
Para desproteger un libro de trabajo, use el Método de desprotección:
1 | Libros de trabajo ("book1.xlsm"). Desproteger "contraseña" |
Recorrer todos los libros abiertos
Para recorrer todos los libros abiertos:
123456789 | Sub LoopThroughWBs ()Dim wb como libro de trabajoPara cada wb en libros de trabajoMsgBox wb.NameSiguiente wbEnd Sub |
Evento de activación del libro de trabajo
Puede ejecutar algún código cada vez que se abre un libro específico con el Evento abierto del libro de trabajo.
Coloque este procedimiento en el módulo ThisWorkbook de su libro de trabajo:
123 | Private Sub Workbook_Open ()Hojas de cálculo ("hoja1"). ActivarEnd Sub |
Este procedimiento se activará Hoja1 cada vez que se abre el libro.