VBA Ottieni nome foglio / Rinomina foglio

Questo tutorial tratterà l'interazione con i nomi dei fogli in VBA.

Ottieni nome foglio

I nomi dei fogli sono memorizzati in Nome proprietà del Fogli o Fogli di lavoro oggetto. Il nome del foglio è il nome della "scheda" visibile nella parte inferiore di Excel:

Ottieni nome ActiveSheet

Questo visualizzerà il nome di ActiveSheet in una finestra di messaggio:

1 MsgBox ActiveSheet.Name

Ottieni il nome del foglio per numero di indice

Questo visualizzerà il nome del primo foglio di lavoro in una finestra di messaggio:

1 Fogli MsgBox(1).Nome

Verrà visualizzato il nome dell'ultimo foglio di lavoro nella cartella di lavoro:

1 MsgBox Fogli(Fogli.Conteggio).Nome

Ottieni nome foglio per nome codice

Nell'editor VBA, c'è un'opzione per cambiare il "nome in codice" di un foglio. Il nome in codice non è visibile all'utente di Excel e può essere visualizzato solo nell'editor VBA:

In VBA, quando si lavora con Fogli, è possibile fare riferimento al solito nome della scheda:

1 Fogli("Nome scheda").Attiva

o il nome in codice VBA:

1 NomeCodice.Attiva

È consigliabile fare riferimento al nome del codice nel caso in cui il nome della scheda Foglio cambi. Se consenti all'utente di Excel l'accesso alla modifica dei nomi dei fogli, dovresti fare riferimento al nome del codice nel codice VBA in modo che una mancata corrispondenza del nome della scheda del foglio non causi un errore. I nomi dei codici dei fogli sono discussi in maggior dettaglio qui.

Per ottenere il nome del foglio utilizzando il nome del codice VBA, procedi come segue:

1 MsgBox CodeName.Name

Rinomina foglio

Puoi rinominare Fogli regolando il nome proprietà del Fogli o Fogli di lavoro oggetto.

Rinomina ActiveSheet

1 ActiveSheet.Name = "NuovoNome"

Rinomina foglio per nome

1 Fogli("VecchioFoglio").Nome = "NuovoNome"

Rinomina foglio per numero indice foglio

Qui usiamo 1 per rinominare il primo foglio nella cartella di lavoro.

1 Fogli(1).Nome = "NuovoNome"

Rinomina foglio per nome in codice

Questo codice rinominerà un foglio usando il suo nome in codice VBA (discusso sopra):

1 Component.Name = "NuovoNome"

Controlla se il nome del foglio esiste

Abbiamo creato una funzione per verificare se esiste già un foglio con un nome particolare.

123456789101112 'Verifica se esiste un intervallo su un foglio.'Lascia vuoto l'intervallo per verificare se il foglio esiste'Ingressi:' WhatSheet - Stringa Nome del foglio (ex "Sheet1")' WhatRange (Opzionale, Predefinito = "A1") - Stringa Nome dell'intervallo (ex "A1")Funzione RangeExists(WhatSheet As String, Optional ByVal WhatRange As String = "A1") As BooleanDim test come intervalloIn caso di errore Riprendi AvantiImposta test = ActiveWorkbook.Sheets(WhatSheet).Range(WhatRange)RangeExists = Err.Number = 0In caso di errore Vai a 0Fine funzione

La funzione restituirà VERO se il foglio esiste o FALSO in caso contrario.

Usa la funzione in questo modo:

123 Sub Test_SheetExists()MsgBox RangeExists("setup")Fine sottotitolo

Copia foglio e rinomina

Questo esempio è tratto dal nostro articolo sulla copia di fogli.

Dopo aver copiato e incollato un foglio, il foglio appena creato diventa ActiveSheet. Quindi, per rinominare un foglio copiato, usa semplicemente ActiveSheet.Name:

12345678 Sub CopySheetRename2()Fogli("Foglio1"). Copia dopo:=Fogli(Fogli.Count)In caso di errore Riprendi AvantiActiveSheet.Name = "LastSheet"In caso di errore Vai a 0Fine sottotitolo

Nota: abbiamo aggiunto la gestione degli errori per evitare errori se il nome del foglio esiste già.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave