Questo articolo discuterà l'oggetto ActiveSheet in VBA. Discuterà anche come attivare, selezionare e andare a Fogli di lavoro (e molto altro). Leggi la nostra guida completa ai fogli di lavoro VBA per ulteriori informazioni sull'utilizzo dei fogli di lavoro in VBA.
Foglio attivo
In VBA, ActiveSheet fa riferimento al foglio di lavoro attualmente attivo. Può essere attivo un solo foglio alla volta.
Attiva foglio di lavoro (impostazione di ActiveSheet)
Per impostare ActiveSheet utilizzare Worksheet.Activate:
1 | Fogli di lavoro("Input").Attiva |
Il comando Attiva foglio andrà effettivamente al foglio, modificando il foglio visibile.
L'esempio sopra utilizza il nome del foglio (scheda). Invece puoi usare il nome in codice VBA per il foglio di lavoro:
1 | Foglio1.Attiva |
Nome foglio attivo
Per ottenere il nome ActiveSheet:
1 | msgbox ActiveSheet.name |
Fogli selezionati vs ActiveSheet
In qualsiasi momento, solo un foglio può essere ActiveSheet. Tuttavia, è possibile selezionare più fogli di lavoro contemporaneamente.
Quando vengono selezionati più fogli di lavoro, viene considerato attivo solo il foglio di lavoro "più in alto" (ActiveSheet).
Seleziona foglio di lavoro
Se desideri selezionare un foglio di lavoro invece di attivarlo. Utilizzare invece .Select.
Seleziona foglio di lavoro per nome scheda
Questo seleziona un foglio di lavoro in base al nome della scheda del foglio
1 | Fogli("Inserimento").Seleziona |
Seleziona foglio di lavoro per numero di indice
Questo seleziona un foglio di lavoro in base alla sua posizione rispetto ad altre schede
1 | Fogli di lavoro(1).Seleziona |
Seleziona foglio di lavoro con nome codice VBA
1 | Foglio1.Seleziona |
La selezione dei fogli di lavoro in base al nome del codice può prevenire errori causati dalle modifiche al nome del foglio di lavoro.
Seleziona il foglio di lavoro corrente
Per selezionare il foglio di lavoro corrente, utilizzare l'oggetto ActiveSheet:
1 | ActiveSheet.Select |
Altri esempi di attivazione / selezione di fogli
Imposta ActiveSheet su Variabile
Questo assegnerà l'ActiveSheet a una variabile oggetto del foglio di lavoro.
123 | Dim ws come foglio di lavoroImposta ws = ActiveSheet |
Cambia nome foglio attivo
Questo cambierà il nome di ActiveSheet.
1 | ActiveSheet.Name = "NuovoNome" |
Con ActiveSheet
L'utilizzo dell'istruzione With consente di semplificare il codice quando si lavora con oggetti (come Fogli o ActiveSheet).
12345 | Con ActiveSheet.Name = "StartFresh".Celle.Cancella.Range("A1").Valore = .NomeTermina con |
Nota come non è necessario ripetere "ActiveSheet" prima di ogni riga di codice. Questo può essere un enorme risparmio di tempo quando si lavora con un lungo elenco di comandi.
Passa attraverso i fogli selezionati
La seguente macro scorrerà tutti i fogli selezionati, visualizzandone i nomi.
12345678 | Sub GetSelectedSheetsName()Dim ws come foglio di lavoroPer ogni ws in ActiveWindow.SelectedSheetsMsgBox ws.NameAvanti wFine sottotitolo |
Vai al foglio successivo
Questo codice andrà al foglio successivo. Se ActiveSheet è l'ultimo foglio, andrà al primo foglio della cartella di lavoro.
12345 | Se ActiveSheet.Index = Worksheets.Count ThenFogli di lavoro(1).AttivaAltroActiveSheet.Next.ActivateFinisci se |