Una macro de Excel para determinar si un libro está abierto

Una macro de Excel para determinar si un libro está abierto

Mientras piensa en abrir automáticamente libros de Excel, considere lo que puede suceder si intenta abrir un libro que ya está abierto. En el mundo que no es VBA, Excel intenta abrir el archivo nuevamente, con el mensaje que se muestra advirtiendo que se perderán los cambios no guardados. Puede protegerse contra este tipo de casos comprobando si un archivo determinado ya está abierto antes de intentar abrirlo de nuevo.

Una macro de Excel para determinar si un libro está abierto

Evite este mensaje de advertencia.

Cómo funciona la macro

Lo primero que debe notar acerca de esta macro es que es una función, no un procedimiento Sub. Como verá, hacer de esta macro una función le permite pasarle cualquier nombre de archivo para probar si ese archivo ya está abierto.

La esencia de este código es simple. Está probando un nombre de archivo determinado para ver si se puede asignar a una variable de objeto. Solo los libros abiertos se pueden asignar a una variable de objeto. Cuando intenta asignar un libro cerrado a la variable, se produce un error.

Si se puede asignar el libro de trabajo dado, el libro de trabajo está abierto; si ocurre un error, el libro se cierra.

Función FileIsOpenTest (TargetWorkbook como cadena) como booleano
'Paso 1: Declare sus variables
    Dim TestBook como libro de trabajo
'Paso 2: Dígale a Excel que se reanude en caso de error
    En caso de error, reanudar siguiente
Paso 3: intente asignar el libro de trabajo de destino a TestBook
    Establecer TestBook = Libros de trabajo (TargetWorkbook)
'Paso 4: si no se produjo ningún error, el libro de trabajo ya está abierto
    Si Err.Number = 0 entonces
    FileIsOpenTest = Verdadero
    Demás
    FileIsOpenTest = Falso
    Terminara si
Función final

Lo primero que hace la macro es declarar una variable String que contendrá el nombre de archivo que elija el usuario. TestBook es el nombre de su variable String.

En el paso 2, le dice a Excel que puede haber un error al ejecutar este código y, en caso de error, reanude el código. Sin esta línea, el código simplemente se detendría cuando ocurriera un error. Nuevamente, prueba un nombre de archivo determinado para ver si se puede asignar a una variable de objeto. Si se puede asignar el libro de trabajo dado, está abierto; si ocurre un error, se cierra.

En el paso 3, intenta asignar el libro de trabajo dado a la variable de objeto TestBook. El libro de trabajo que intenta asignar es una variable de cadena llamada TargetWorkbook. TargetWorkbook se pasa a la función en las declaraciones de función (consulte la primera línea del código). Esta estructura elimina la necesidad de codificar el nombre de un libro de trabajo, lo que le permite pasarlo como una variable.

En el Paso 4, simplemente verifica si ocurrió un error. Si no se produjo un error, el libro de trabajo está abierto, por lo que establece FileIsOpenTest en True. Si se produjo un error, el libro de trabajo no está abierto y establece FileIsOpenTest en False.

Nuevamente, esta función se puede usar para evaluar cualquier archivo que le pase, a través de su argumento TargetWorkbook. Ésta es la belleza de poner la macro en una función.

La siguiente macro demuestra cómo implementar esta función. Aquí, llama a la nueva función FileIsOpenTest para asegurarse de que el usuario no pueda abrir un archivo ya abierto:

Sub Macro1 ()

'Paso 1: Defina una variable de cadena

    Dim FName como variante

    Dim FNFileOnly As String

'Paso 2: El método GetOpenFilename activa el cuadro de diálogo

    FName = Application.GetOpenFilename (_

            FileFilter: = "Libros de Excel, *. Xl *", _

            Título: = "Elija un libro de trabajo para abrir", _

            Selección múltiple: = Falso)

'Paso 3: Abra el archivo elegido si aún no lo ha abierto

    Si FName <> False entonces

    FNFileOnly = StrReverse (Izquierda (StrReverse (FName), _

                 InStr (StrReverse (FName), ") - 1))

Hoja inteligente 9.1.1

Hoja inteligente 9.1.1

Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.

Compartirpunto

Compartirpunto

SharePoint es un sistema de colaboración basado en web que utiliza una variedad de aplicaciones de flujo de trabajo, bases de datos de "listas" y otros componentes web, así como funciones de seguridad para dar control a los grupos empresariales que trabajan juntos.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar es una aplicación de visualización de calendario en su teléfono, que le ayuda a ver rápidamente la fecha lunisolar en su teléfono, organizando así su importante trabajo.

Outlook 2021

Outlook 2021

Microsoft Outlook es una aplicación empresarial y de productividad desarrollada por Microsoft Corporation.

Haga clic arriba

Haga clic arriba

ClickUp es una de las plataformas de productividad mejor calificadas para cualquier empresa. Grandes empresas como Google, Booking.com, San Diego Padres y Uber utilizan ClickUp para aumentar la productividad en el lugar de trabajo.

Visor de PDF-XChange 2.5.322.10

Visor de PDF-XChange 2.5.322.10

PDF se ha convertido en un formato de uso común para leer, crear y enviar documentos de texto. A su vez, se ha producido un aumento en el número de programas utilizados para este tipo de documentación. PDF-XChange Viewer se encuentra entre un número creciente de visores de PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice ofrece un conjunto completo de aplicaciones de Office que rivalizan con Microsoft 365, especialmente en Excel, PowerPoint y Word. Le permite gestionar sus proyectos de forma más eficaz y admite varios formatos de archivo.

Descargar iTaxviewer 1.8.7

Descargar iTaxviewer 1.8.7

El software iTaxViewer es el software de lectura de archivos XML más popular en la actualidad. Este software es una aplicación de lectura de declaraciones electrónicas de impuestos en formato XML de la Dirección General de Tributación.

Lector de PDF Nitro

Lector de PDF Nitro

Nitro PDF Reader es un práctico editor de PDF que cubre todas las tareas básicas que la mayoría de las personas realizan todos los días con documentos PDF.

Lector Foxit 12

Lector Foxit 12

Foxit Reader es principalmente un lector de PDF y también le permite crear archivos PDF, firmarlos, editarlos y agregar anotaciones. Funciona en sistemas operativos, existen complementos para varios programas del paquete Microsoft Office.