Bruno ha un intervallo denominato (Account) definito in una cartella di lavoro e si chiede come utilizzare tale intervallo denominato all’interno di una macro. Esistono diversi modi per accedere all’intervallo, utilizzando l’oggetto Range o la collezione Names.
Per accedere all’intervallo denominato utilizzando l’oggetto Range, è sufficiente fornire il nome dell’intervallo come parametro dell’oggetto. Questo nome è lo stesso che hai definito in Excel. Ad esempio, la seguente riga potrebbe essere utilizzata per modificare il colore interno dell’intero intervallo:
Worksheets("Foglio1").Range("Account").Interior.Color = vbYellow
Si noti che l’oggetto Range viene utilizzato in relazione a un particolare foglio di lavoro, in questo caso Foglio1. È inoltre possibile definire un oggetto Range all’interno di VBA e quindi assegnarlo in modo che sia uguale all’intervallo denominato, in questo modo:
Set rng = Worksheets("Foglio1").Range("Account")
L’altro metodo per utilizzare l’intervallo denominato consiste nell’utilizzare la collezione Names. La riga seguente imposterà nuovamente il colore interno dell’intervallo su giallo:
Workbooks("Cartel1.xls").Names("Account").RefersToRange.Interior.Color = vbYellow
Si noti che la collezione Names è relativa all’intera cartella di lavoro, quindi non è necessario sapere a quale foglio di lavoro è associato l’intervallo denominato quando si utilizza questo metodo di accesso. Puoi anche definire un oggetto Range in VBA e assegnarlo in modo che sia uguale all’intervallo denominato:
Set rng = Workbooks("Cartel1.xls").Names("Account").RefersToRange
Dovresti sapere che il metodo della collezione Names per accedere a un intervallo denominato sarà praticabile solo se non hai lo stesso intervallo denominato definito su fogli di lavoro diversi nella cartella di lavoro. In tal caso, sarà necessario utilizzare il metodo dell’oggetto Range, che richiede l’utilizzo di un nome di foglio di lavoro specifico nel riferimento.