Кратчайший метод для ссылки на одну строку / столбец именованного диапазона в Excel?

30859
technomalogical

У меня есть именованный range ( NamedRange1), и мне нужно сослаться на первую строку и первый столбец этого диапазона в формуле. Я придумал следующее:

  • Первый ряд:

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

  • Первый столбец:

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

Это кажется громоздким, тем более что объектная модель Excel выставляется Rowsи Columnsв VBA. Есть ли более краткий способ выразить это?

8

1 ответ на вопрос

15
Lance Roberts

Строка:

INDEX(UnpivotSource,1,0) 

Колонка:

INDEX(UnpivotSource,0,1) 

Обратите внимание, что это будет работать только для смежных именованных диапазонов, есть индексная функция для областей диапазона, но она может оказаться сложной, если вы захотите что-то отличное от первой строки или столбца.

Красиво, прекрасно работает и намного короче. Спасибо! technomalogical 14 лет назад 0
Как вы думаете, под капотом xl, если я использую эту технику, скажем, Max, она будет более эффективной, например `Max (" A: A ")` по сравнению с `Max (index (myNmdRang, 0,1))`? whytheq 8 лет назад 0
@whytheq, я думаю, что для больших столбцов Max ("A: A") `будет наиболее эффективным. Время и тестирование можно посмотреть здесь: http://stackoverflow.com/questions/198409/how-do-you-test-running-time-of-vba-code. Lance Roberts 8 лет назад 0
@LanceRoberts Я добавил более подробный вопрос о SO здесь: http://stackoverflow.com/questions/36197157/is-specifying-a-column-from-a-named-range-more-efficient-than-calculating-over- Вы можете ответить, так как текущий ответ недостаточно хорош. whytheq 8 лет назад 0

Похожие вопросы