Come utilizzare la variabile vba thisworkbook in excel?
In VBA è possibile utilizzare la proprietà ThisWorkbook per fare riferimento alla cartella di lavoro in cui si scrive il codice. Quando lo usi, hai accesso a tutte le proprietà e i metodi della cartella di lavoro corrente. In poche parole, puoi eseguire tutte le attività nella cartella di lavoro corrente senza utilizzare il nome.
Supponiamo di voler contare i fogli nella cartella di lavoro corrente. Il codice che devi scrivere sarebbe il seguente.
Sub vba_thisworkbook() MsgBox ThisWorkbook.Sheets.Count End Sub
Quando esegui questo codice, viene visualizzata una finestra di messaggio con il numero di fogli presenti nella cartella di lavoro corrente.
Come ho detto, quando usi ThisWorkbook, ti dà accesso alle proprietà e al metodo della cartella di lavoro corrente. Puoi vedere tutto questo quando inserisci un punto (.) per visualizzare l’elenco completo.
Link utili: Esegui una macro – Registratore di macro – Visual Basic Editor – Manuale delle macro personali
Utilizzo di ThisWorkbook con una variabile
Successivamente, ti mostrerò un esempio di codice reale per dichiarare una variabile per utilizzare la proprietà ThisWorkbook. Supponiamo di voler eseguire diverse attività nella cartella di lavoro corrente.
Sub vba_thisworkbook() Dim myWB As Workbook Set myWB = ThisWorkbook With myWB .Activate .Sheets(1).Activate .Range("A1") = Now .Save .Close End With End Sub
Nella prima parte di questo codice hai una variabile, quindi assegnale la proprietà “ThisWorkbook”. E poi nella seconda parte hai la WITH STATEMENT per eseguire più attività con la variabile corrente.
ActiveWorkBook contro questa cartella di lavoro
Lascia che te lo spieghi con una semplice analogia, quindi abbi pazienza per i prossimi 2 minuti.
Hai due cartelle di lavoro aperte contemporaneamente (Libro1 e Libro2). Scrivi il codice in book1 ma book2 è attivo a questo punto. Pertanto, quando esegui questo codice che fa riferimento ad ActiveWorkbook, eseguirà questa attività in Book2 .
Ma quando usi ThisWorkbook, VBA fa sempre riferimento alla cartella di lavoro in cui è scritto il codice.
Il punto è questo: è sempre meglio utilizzare ThisWorkbook perché elimina la possibilità di errore.