Kürzeste Methode zum Referenzieren einer einzelnen Zeile / Spalte eines benannten Bereichs in Excel?

30961
technomalogical

Ich habe einen benannten Bereich ( NamedRange1) und muss die erste Zeile und die erste Spalte dieses Bereichs innerhalb einer Formel referenzieren. Ich habe mir folgendes ausgedacht:

  • Erste Reihe:

    INDIRECT("R" & ROW(UnpivotSource) & "C" & COLUMN(UnpivotSource) & ":R"& ROWS(UnpivotSource) +ROW(UnpivotSource) -1 & "C" & COLUMN(UnpivotSource),0)

  • Erste Spalte:

    INDIRECT("R" & ROW(UnpivotSource) & "C" & COLUMN(UnpivotSource) & ":R"& ROW(UnpivotSource) & "C" & COLUMNS(UnpivotSource) + COLUMN(UnpivotSource) -1,0)

Dies erscheint umständlich, zumal das Excel-Objektmodell Rowsund Columnsin VBA verfügbar macht. Gibt es eine prägnantere Art, dies auszudrücken?

8

1 Antwort auf die Frage

15
Lance Roberts

Reihe:

INDEX(UnpivotSource,1,0) 

Säule:

INDEX(UnpivotSource,0,1) 

Beachten Sie, dass dies nur für benachbarte benannte Bereiche funktioniert. Es gibt eine Indexfunktion für Bereiche eines Bereichs. Es kann jedoch schwierig werden, wenn Sie etwas anderes als die erste Zeile oder Spalte wünschen.

Schön, funktioniert super und viel kürzer. Vielen Dank! technomalogical vor 14 Jahren 0
Denken Sie, wenn ich diese Technik benutze, zum Beispiel Max, ist sie effizienter, z. B. `Max (" A: A ")` im Vergleich zu `Max (Index (myNmdRang, 0,1))`? whytheq vor 8 Jahren 0
@whytheq, Meine Vermutung wäre, dass für große Spalten `Max (" A: A ")` am effizientesten wäre. Du könntest es mal testen, siehe hier: http://stackoverflow.com/questions/198409/how-do-you-test-running-time-of-vba-code. Lance Roberts vor 8 Jahren 0
@ LanceRoberts Ich habe hier eine ausführlichere Frage zu SO hinzugefügt: http://stackoverflow.com/questions/36197157/isspecifying-a-column-von-a-named_range-mehr-efficient-than-calkulation-over- a Sie möchten vielleicht antworten, da die aktuelle Antwort nicht gut genug ist. whytheq vor 8 Jahren 0