Wie bekommt man einen Range seinen Namen zurück?
-
26-09-2019 - |
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?
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.