Frage

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

Der obige Code wird die tatsächliche Adresse des Bereichs zeigen, nicht der Name. Warum?
Wie erhalte ich einen benannten Bereich seinen Namen zurück?

War es hilfreich?

Lösung

Für einen Bereich, ist Name kein String, es ist ein Name-Objekt, das Sie dann die Eigenschaft Namen nehmen von der Zeichenfolge zu erhalten:

MsgBox sampleRange.Name.Name

Andere Tipps

sampleRange.Name = "Range1" den Bereich zu nennen ist eine schlechte Praxis

Es funktioniert nur, weil Namen (die Zeichenfolge „Der Name“ enthält) ist die Standardeigenschaft von Namen.

Viel besser sampleRange.Name.Name = "Range1"

Es ist nie eine gute Praxis, um die Standardeigenschaft zu verwenden, ohne ausdrücklich darauf Bezug genommen wird.

Gute Programmierung steuert genau die Umwelt durch Bezugnahme ausdrücklich auf die Eigenschaft erforderlich.

Beseitigt Mehrdeutigkeit als das Problem hier geschaffen. Beseitigt das Problem erzeugt, wenn die Standardeigenschaft wird in einem zukünftigen Update geändert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top