VBA Trabajar con libros de trabajo (el objeto de libro de trabajo)

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.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave