Determinare il numero di un foglio di lavoro

Lorenzo ha bisogno di un modo per determinare il numero di un foglio di lavoro anche se il foglio di lavoro è stato rinominato. Ad esempio, se un foglio di lavoro si chiama Foglio11, è abbastanza facile capire che si tratta del foglio 11. Se rinomina il foglio in gennaio, Lorenzo ha ancora bisogno di un modo per sapere che si tratta del foglio 11.

La soluzione a questo problema viene eseguita al meglio con una funzione definita dall’utente (una macro). Esistono, in realtà, due numeri che la macro potrebbe restituire per ogni foglio di lavoro. Il primo è il numero di indice del foglio di lavoro. Questo numero rappresenta l’indice dell’oggetto Worksheet del foglio di lavoro all’interno della collezione Worksheets. Questo valore può essere restituito da una macro simile alla seguente:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Questa funzione, se utilizzata in un foglio di lavoro, restituirà il numero di indice di qualsiasi foglio di lavoro il cui nome viene passato alla funzione. Se il nome passato alla funzione non esiste nella collezione dei fogli di lavoro, la funzione restituisce il valore -1. Ad esempio, quanto segue utilizzato in una cella restituirà il valore di indice per il foglio di lavoro denominato “Gennaio” all’interno della collezione:

=SheetNumber("Gennaio")

 

A onor del vero, esiste anche una funzione del foglio di lavoro chiamata FOGLIO che è stata introdotta in Excel 2013. Anche questa funzione restituisce il numero di indice di un foglio. La funzione FOGLIO si applica a tutti i fogli di lavoro (visibili, nascosti o molto nascosti) oltre a tutti gli altri tipi di fogli (grafico, macro o finestra di dialogo).

Il problema con questo approccio è che l’ordine degli oggetti Worksheet nella collezione Worksheets può cambiare nel tempo. Pertanto, non si può sempre presumere che l’undicesimo foglio della collezione sia il foglio che originariamente era il Foglio 11.

Un modo più coerente per capire il nome originario di un foglio di lavoro (indipendentemente da come è stato rinominato) consiste nell’usare ciò che Visual Basic chiama “CodeName” del foglio. Questa è una proprietà del foglio di lavoro e può essere determinata nel modo seguente:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

La proprietà CodeName è di sola lettura in una macro. Viene assegnata al momento della creazione del foglio di lavoro, ma è possibile che venga modificata manualmente all’interno del Visual Basic Editor. Il CodeName è sempre una stringa, che rappresenta il primo nome che è stato applicato al foglio di lavoro, quindi sarà qualcosa come “Foglio11”. Una volta impostato il CodeName, anche se il foglio di lavoro viene rinominato (ad esempio in “Gennaio”), esso rimarrà fisso (“Foglio11”).

Nell’esempio della seconda macro la proprietà CodeName è assegnata alla variabile sTemp. Questo sarà, il più delle volte, qualcosa come “Foglio3” o “Foglio11”. Quindi, la macro acquisisce il valore numerico di qualunque cosa inizi con il settimo carattere (subito dopo “Foglio”). Questo è il valore restituito dalla funzione.

 

LE SCHEDE TECNICHE DELLE FUNZIONI UTILIZZATE
  • Posts not found

Tags: , , , , , , , , , , ,

Ti è stato utile?