Una macro dExcel per determinar si un llibre de treball està obert

Quan penseu a obrir automàticament els llibres d'Excel, tingueu en compte què pot passar si intenteu obrir un llibre que ja està obert. Al món que no és VBA, Excel intenta obrir el fitxer de nou, amb el missatge que es mostra advertint que es perdran els canvis no desats. Podeu protegir-vos d'aquesta ocurrència comprovant si un fitxer ja està obert abans d'intentar-lo de nou.

Una macro d'Excel per determinar si un llibre de treball està obert

Eviteu aquest missatge d'advertència.

Com funciona la macro

El primer que cal notar d'aquesta macro és que és una funció, no un procediment Sub. Com veureu, fer d'aquesta macro una funció us permet passar-li qualsevol nom de fitxer per comprovar si aquest fitxer ja està obert.

L'essencial d'aquest codi és senzill. Esteu provant un nom de fitxer determinat per veure si es pot assignar a una variable Object. Només els llibres de treball oberts es poden assignar a una variable Object. Quan intenteu assignar un llibre de treball tancat a la variable, es produeix un error.

Si es pot assignar el llibre de treball donat, el llibre de treball està obert; si es produeix un error, el llibre de treball es tanca.

Funció FileIsOpenTest(TargetWorkbook As String) Com a booleà
"Pas 1: declara les teves variables
    Dim TestBook com a llibre de treball
"Pas 2: digueu a Excel que reprendrà en cas d'error
    En cas d'error Reprèn Següent
"Pas 3: intenteu assignar el llibre de treball de destinació a TestBook
    Set TestBook = Llibres de treball (TargetWorkbook)
"Pas 4: si no s'ha produït cap error, el llibre de treball ja està obert
    Si Err.Number = 0 Aleshores
    FileIsOpenTest = Veritable
    Altrament
    FileIsOpenTest = Fals
    Acaba si
Funció final

El primer que fa la macro és declarar una variable String que contindrà el nom del fitxer que tria l'usuari. TestBook és el nom de la vostra variable String.

Al pas 2, indiqueu a Excel que pot haver-hi un error executant aquest codi i, en cas d'error, reinicieu el codi. Sense aquesta línia, el codi simplement s'aturaria quan es produeix un error. De nou, proveu un nom de fitxer determinat per veure si es pot assignar a una variable Object. Si es pot assignar el llibre de treball donat, està obert; si es produeix un error, es tanca.

Al pas 3, intenteu assignar el llibre de treball donat a la variable TestBook Object. El llibre de treball que intenteu assignar és una variable de cadena anomenada TargetWorkbook. TargetWorkbook es passa a la funció a les declaracions de funció (vegeu la primera línia del codi). Aquesta estructura elimina la necessitat de codificar el nom d'un llibre de treball, cosa que us permet passar-lo com a variable.

Al pas 4, simplement comproveu si s'ha produït un error. Si no s'ha produït cap error, el llibre de treball està obert, de manera que configureu FileIsOpenTest en True. Si s'ha produït un error, el llibre de treball no està obert i establiu FileIsOpenTest a False.

De nou, aquesta funció es pot utilitzar per avaluar qualsevol fitxer que li passeu, mitjançant el seu argument TargetWorkbook. Aquesta és la bellesa de posar la macro en una funció.

La macro següent mostra com implementar aquesta funció. Aquí, truqueu a la nova funció FileIsOpenTest per assegurar-vos que l'usuari no pot obrir un fitxer ja obert:

Sub macro1()

"Pas 1: defineix una variable de cadena

    Dim FName com a variant

    Dim FNFileOnly com a cadena

"Pas 2: el mètode GetOpenFilename activa el quadre de diàleg

    FName = Application.GetOpenFilename (_

            FileFilter:="Llibres de treball d'Excel,*.xl*", _

            Títol:="Tria un llibre de treball per obrir", _

            Selecció múltiple:=fals)

"Pas 3: obriu el fitxer escollit si encara no s'ha obert

    Si FName <> False Aleshores

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

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

Com bloquejar Microsoft Word dobrir fitxers en mode només de lectura a Windows

Com bloquejar Microsoft Word dobrir fitxers en mode només de lectura a Windows

Com bloquejar Microsoft Word d'obrir fitxers en mode de només lectura a Windows Microsoft Word obre fitxers en mode de només lectura, cosa que fa que sigui impossible editar-los? No us preocupeu, els mètodes es mostren a continuació

Com solucionar la impressió incorrecta de documents de Microsoft Word

Com solucionar la impressió incorrecta de documents de Microsoft Word

Com corregir errors en imprimir documents incorrectes de Microsoft Word Els errors en imprimir documents de Word amb tipus de lletra canviats, paràgrafs desordenats, falta de text o contingut perdut són força habituals. No obstant això, no

Esborra els dibuixos de llapis i ressaltats a les teves diapositives de PowerPoint

Esborra els dibuixos de llapis i ressaltats a les teves diapositives de PowerPoint

Si heu utilitzat el llapis o el marcador per dibuixar a les vostres diapositives de PowerPoint durant una presentació, podeu desar els dibuixos per a la següent presentació o esborrar-los de manera que la propera vegada que el mostreu, començareu amb diapositives de PowerPoint netes. Seguiu aquestes instruccions per esborrar dibuixos a llapis i ressaltadors: Esborrant línies una a […]

Contingut de la biblioteca destils a SharePoint 2010

Contingut de la biblioteca destils a SharePoint 2010

La biblioteca d'estils conté fitxers CSS, fitxers de llenguatge de full d'estil extensible (XSL) i imatges utilitzades per pàgines mestres predefinides, dissenys de pàgina i controls a SharePoint 2010. Per localitzar fitxers CSS a la biblioteca d'estils d'un lloc de publicació: Trieu Accions del lloc→Visualitza Tot el contingut del lloc. Apareix el contingut del lloc. La biblioteca d'estil es troba a […]

Formateu els números en milers i milions als informes dExcel

Formateu els números en milers i milions als informes dExcel

No desbordeu el vostre públic amb números gigantesques. A Microsoft Excel, podeu millorar la llegibilitat dels vostres taulers i informes formatant els vostres números perquè apareguin en milers o milions.

Com compartir i seguir els llocs de SharePoint

Com compartir i seguir els llocs de SharePoint

Apreneu a utilitzar les eines de xarxes socials de SharePoints que permeten a persones i grups comunicar-se, col·laborar, compartir i connectar-se.

Com convertir les dates a formats Julian a Excel

Com convertir les dates a formats Julian a Excel

Les dates julianes s'utilitzen sovint en entorns de fabricació com a marca de temps i referència ràpida per a un número de lot. Aquest tipus de codificació de dates permet als minoristes, consumidors i agents de serveis identificar quan es va fabricar un producte i, per tant, l'antiguitat del producte. Les dates julianes també s'utilitzen en programació, militars i astronomia. Diferents […]

Com crear una aplicació web daccés

Com crear una aplicació web daccés

Podeu crear una aplicació web a Access 2016. Què és, de totes maneres, una aplicació web? Bé, web vol dir que està en línia i l'aplicació és només una abreviatura de "aplicació". Una aplicació web personalitzada és una aplicació de base de dades en línia a la qual s'accedeix des del núvol mitjançant un navegador. Creeu i manteniu l'aplicació web a la versió d'escriptori […]

Barra dinici ràpid a SharePoint 2010

Barra dinici ràpid a SharePoint 2010

La majoria de les pàgines del SharePoint 2010 mostren una llista d'enllaços de navegació a la barra d'inici ràpid al costat esquerre de la pàgina. La barra d'inici ràpid mostra enllaços al contingut del lloc destacat, com ara llistes, biblioteques, llocs i pàgines de publicació. La barra d'inici ràpid inclou dos enllaços molt importants: Enllaç de tot el contingut del lloc: el […]

Què signifiquen els missatges derror del solucionador a Excel?

Què signifiquen els missatges derror del solucionador a Excel?

Per a problemes senzills, Solver a Excel sol trobar ràpidament els valors òptims de la variable Solver per a la funció objectiu. Però, en alguns casos, Solver té problemes per trobar els valors de la variable Solver que optimitzen la funció objectiu. En aquests casos, Solver normalment mostra un missatge o un missatge d'error que descriu o discuteix el problema que […]