Come attivare una cartella di lavoro excel tramite vba?
Quando lavori con più cartelle di lavoro contemporaneamente, voglio dire, quando hai più cartelle di lavoro aperte contemporaneamente, devi conoscere il metodo che può aiutarti ad attivare una cartella di lavoro su cui vuoi lavorare.
Per attivare una cartella di lavoro utilizzando VBA, è necessario utilizzare il metodo Workbook.Activate. In questo metodo è necessario specificare il nome della cartella di lavoro utilizzando l’oggetto Workbook. Consente inoltre di utilizzare il numero della cartella di lavoro anziché il nome della cartella di lavoro, ma è possibile fare riferimento solo alle cartelle di lavoro aperte.
In questo tutorial esamineremo diversi modi per utilizzare questo metodo.
Passaggi per attivare una cartella di lavoro
- Digitare “Raccoglitori” per utilizzare l’oggetto raccoglitore.
- Specificare il nome della cartella di lavoro tra virgolette doppie.
- Immettere un punto (.) per ottenere un elenco di proprietà e metodi.
- Seleziona il metodo di attivazione dall’elenco oppure puoi anche inserirlo.
- Alla fine, esegui il codice per attivare la cartella di lavoro.
Sub vba_activate_workbook() Workbooks("Book3").Activate End Sub
Nota: se provi ad attivare una cartella di lavoro non aperta, VBA visualizzerà un errore.
Correlato: attivare un foglio di calcolo utilizzando VBA
Link utili: Esegui una macro – Registratore di macro – Visual Basic Editor – Manuale delle macro personali
Attiva una cartella di lavoro utilizzando il numero
Quando sono aperte più cartelle di lavoro, tutte queste cartelle di lavoro diventano parte della raccolta di cartelle di lavoro e hanno un numero a cui puoi fare riferimento, quindi puoi utilizzare il metodo di attivazione con esso. Ecco il codice:
Sub vba_activate_workbook() Workbooks(2).Activate End Sub
E se provi ad attivare una cartella di lavoro utilizzando un numero che non esiste, VBA ti mostrerà un errore di runtime “9” (pedice fuori intervallo).
Attiva questa cartella di lavoro
Puoi fare riferimento alla cartella di lavoro in cui scrivi il codice utilizzando la proprietà ThisWorkbook. Supponiamo che tu abbia cinque cartelle di lavoro aperte contemporaneamente ma stai lavorando su “Book1.xlsm”, quindi quando esegui il codice seguente verrà attivato “Book1.xlsm”.
Sub vba_activate_workbook() ThisWorkbook.Activate End Sub
Controllare prima di attivare una cartella di lavoro
Come ho detto, quando provi ad attivare una cartella di lavoro non aperta, VBA ti mostra un errore. Per risolvere questo problema, il modo migliore è controllare prima il nome della cartella di lavoro (se è aperta o meno) e poi attivarla.
Sub vba_activate_workbook() Dim wb As Workbook For Each wb In Workbooks If wb.Name = "Book3.xlsx" Then wb.Activate MsgBox "Workbook found and activated" Exit Sub End If Next wb MsgBox "Not found" End Sub
Utilizzando il codice sopra è possibile specificare il nome di una cartella di lavoro e questo controllerà prima questa cartella di lavoro in tutte le cartelle di lavoro aperte e, se trova la cartella di lavoro, la attiverà.
Commenti
- Quando utilizzi il nome della cartella di lavoro, assicurati di utilizzare l’estensione di file corretta
- Se desideri attivare una cartella di lavoro non ancora salvata, devi utilizzare solo il nome di quella cartella di lavoro senza suffisso per l’estensione del file.