Domanda

Dim sampleRange as Range
Set sampleRange = Worksheet.Range(Cells(1,1),Cells(1,4)
sampleRange.Name = "Range1"
MsgBox sampleRange.Name

Il codice qui sopra mostra l'indirizzo effettivo della gamma, non il nome. Perché?
Come faccio ad avere un intervallo denominato per restituire il suo nome?

È stato utile?

Soluzione

Per un intervallo, nome non è una stringa è un oggetto di nome, che poi prende la proprietà Name per ottenere la stringa:

MsgBox sampleRange.Name.Name

Altri suggerimenti

sampleRange.Name = "Range1" per citarne la gamma è povero pratica

Funziona solo perché Nome (la stringa contenente "The Name") è di proprietà di default del nome.

Molto meglio sampleRange.Name.Name = "Range1"

Non è mai buona norma utilizzare la proprietà predefinita senza fare riferimento ad esso in modo esplicito.

Buona programmazione controlla esattamente l'ambiente facendo riferimento in modo esplicito alla proprietà richiesta.

Rimuove l'ambiguità come ha creato il problema qui. Elimina il problema creato se la proprietà predefinita viene modificata in un aggiornamento futuro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top