Una macro di Excel per determinare se una cartella di lavoro è aperta

Una macro di Excel per determinare se una cartella di lavoro è aperta

Mentre pensi di aprire automaticamente le cartelle di lavoro di Excel, considera cosa potrebbe accadere se tenti di aprire un libro che è già aperto. Nel mondo non VBA, Excel tenta di aprire nuovamente il file, con il messaggio visualizzato che avverte che eventuali modifiche non salvate andranno perse. Puoi proteggerti da tale evento controllando se un determinato file è già aperto prima di provare ad aprirlo di nuovo.

Una macro di Excel per determinare se una cartella di lavoro è aperta

Evita questo messaggio di avviso.

Come funziona la macro

La prima cosa da notare su questa macro è che è una funzione, non una procedura Sub. Come vedrai, rendere questa macro una funzione ti consente di passarle qualsiasi nome di file per verificare se quel file è già aperto.

L'essenza di questo codice è semplice. Stai testando un determinato nome file per vedere se può essere assegnato a una variabile Object. Solo le cartelle di lavoro aperte possono essere assegnate a una variabile Object. Quando si tenta di assegnare una cartella di lavoro chiusa alla variabile, si verifica un errore.

Se la cartella di lavoro specificata può essere assegnata, la cartella di lavoro è aperta; se si verifica un errore, la cartella di lavoro viene chiusa.

Funzione FileIsOpenTest(TargetWorkbook As String) As Boolean
'Passaggio 1: dichiara le tue variabili
    Dim TestBook come cartella di lavoro
"Passaggio 2: dì a Excel di riprendere in caso di errore"
    In caso di errore Riprendi Avanti
'Passaggio 3: prova ad assegnare la cartella di lavoro di destinazione a TestBook
    Imposta libro di prova = cartelle di lavoro (cartella di lavoro di destinazione)
"Passaggio 4: se non si è verificato alcun errore, la cartella di lavoro è già aperta"
    Se Err.Number = 0 Allora
    FileIsOpenTest = True
    Altro
    FileIsOpenTest = False
    Finisci se
Fine funzione

La prima cosa che fa la macro è dichiarare una variabile String che conterrà il nome del file scelto dall'utente. TestBook è il nome della tua variabile String.

Nel passaggio 2, dici a Excel che potrebbe esserci un errore durante l'esecuzione di questo codice e, in caso di errore, riprendi il codice. Senza questa riga, il codice si fermerebbe semplicemente quando si verifica un errore. Di nuovo, si prova un dato nome di file per vedere se può essere assegnato a una variabile Object. Se la cartella di lavoro specificata può essere assegnata, è aperta; se si verifica un errore, viene chiuso.

Nel passaggio 3, si tenta di assegnare la cartella di lavoro specificata alla variabile TestBook Object. La cartella di lavoro che si tenta di assegnare è una variabile String chiamata TargetWorkbook. TargetWorkbook viene passato alla funzione nelle dichiarazioni di funzione (vedere la prima riga del codice). Questa struttura elimina la necessità di codificare il nome di una cartella di lavoro, consentendo invece di passarlo come variabile.

Nel passaggio 4, controlli semplicemente per vedere se si è verificato un errore. Se non si è verificato un errore, la cartella di lavoro è aperta, quindi si imposta FileIsOpenTest su True. Se si è verificato un errore, la cartella di lavoro non è aperta e si imposta FileIsOpenTest su False.

Di nuovo, questa funzione può essere utilizzata per valutare qualsiasi file gli passi, tramite il suo argomento TargetWorkbook. Questa è la bellezza di mettere la macro in una funzione.

La seguente macro illustra come implementare questa funzione. Qui, chiami la nuova funzione FileIsOpenTest per assicurarti che l'utente non possa aprire un file già aperto:

Sottomacro1()

'Passaggio 1: definire una variabile String

    Dim FName come variante

    Dim FNFleOnly As String

'Passaggio 2: il metodo GetOpenFilename attiva la finestra di dialogo

    FName = Application.GetOpenFilename( _

            FileFilter:="Cartelle di lavoro Excel,*.xl*", _

            Title:="Scegli una cartella di lavoro da aprire", _

            Selezione multipla:=Falso)

'Passaggio 3: apri il file scelto se non è già aperto

    Se FName <> False Allora

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

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

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet è una piattaforma di lavoro dinamica che ti consente di gestire progetti, creare flussi di lavoro e collaborare con il tuo team.

SharePoint

SharePoint

SharePoint è un sistema di collaborazione basato sul Web che utilizza una varietà di applicazioni per flussi di lavoro, database di "elenco" e altri componenti Web, nonché funzionalità di sicurezza per fornire controllo ai gruppi aziendali che lavorano insieme.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar è un'applicazione per la visualizzazione del calendario sul tuo telefono, che ti aiuta a vedere rapidamente la data lunisolare sul tuo telefono, organizzando così il tuo lavoro importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook è un'applicazione aziendale e di produttività sviluppata da Microsoft Corporation.

Fare clic su

Fare clic su

ClickUp è una delle piattaforme di produttività più apprezzate per qualsiasi azienda. Grandi aziende come Google, Booking.com, San Diego Padres e Uber utilizzano ClickUp per aumentare la produttività sul posto di lavoro.

Visualizzatore PDF-XChange 2.5.322.10

Visualizzatore PDF-XChange 2.5.322.10

Il PDF è diventato un formato comunemente utilizzato per leggere, creare e inviare documenti di testo. A sua volta, c'è stato un aumento del numero di programmi utilizzati per questo tipo di documentazione. PDF-XChange Viewer fa parte di un numero crescente di visualizzatori PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice offre una suite completa di applicazioni Office che rivaleggiano con Microsoft 365, in particolare in Excel, PowerPoint e Word. Ti consente di gestire i tuoi progetti in modo più efficace e supporta diversi formati di file.

Scarica iTaxviewer 1.8.7

Scarica iTaxviewer 1.8.7

Il software iTaxViewer è il software di lettura di file XML più popolare oggi. Questo software è un'applicazione per la lettura delle dichiarazioni fiscali elettroniche in formato XML del Dipartimento Generale delle Imposte.

Lettore PDF Nitro

Lettore PDF Nitro

Nitro PDF Reader è un pratico editor PDF che copre tutte le attività di base che la maggior parte delle persone esegue ogni giorno con i documenti PDF.

Foxit Reader 12

Foxit Reader 12

Foxit Reader è principalmente un lettore PDF e consente anche di creare file PDF, firmarli, modificarli e aggiungere annotazioni. Funziona su sistemi operativi, ci sono plugin per vari programmi del pacchetto Microsoft Office.