Vba: controlla se la cartella di lavoro è aperta (con esempio)
È possibile utilizzare la seguente sintassi in VBA per verificare se una particolare cartella di lavoro è attualmente aperta.
SubCheckWorkbookOpen ()
Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing
If resultCheck Then
MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
End Sub
Quando viene eseguita questa macro, verrà visualizzata una casella di input in cui un utente può digitare il nome di una cartella di lavoro di Excel e la macro produrrà una finestra di messaggio con uno dei seguenti risultati:
- “Il dossier è aperto”
- “Il file non è aperto”
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: come verificare se la cartella di lavoro è aperta utilizzando VBA
Supponiamo che attualmente abbiamo due cartelle di lavoro aperte con i seguenti nomi:
- mia_cartelladilavoro1.xlsx
- mia_cartelladilavoro2.xlsx
Supponiamo di voler verificare se la cartella di lavoro denominata my_workbook1.xlsx è attualmente aperta.
Per fare ciò possiamo creare la seguente macro:
SubCheckWorkbookOpen ()
Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing
If resultCheck Then
MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
End Sub
Una volta eseguita questa macro, verrà visualizzata una casella in cui posso digitare my_workbook1.xlsx nella casella di input:
Dopo aver fatto clic su OK , la macro produrrà la seguente finestra di messaggio:
La macro visualizza correttamente “La cartella di lavoro è aperta” per indicare che una cartella di lavoro con quel nome è attualmente aperta.
Supponiamo ora di aver digitato il nome di una cartella di lavoro che non è attualmente aperta:
Dopo aver fatto clic su OK , la macro produrrà la seguente finestra di messaggio:
La macro visualizza correttamente “La cartella di lavoro non è aperta” per indicare che una cartella di lavoro con quello nome non è attualmente aperta.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come contare il numero di fogli in una cartella di lavoro
VBA: come inserire più colonne
VBA: come inserire più righe