8

Как бы я получить доступ к диапазону, который соответствует всему столбцу, начиная со строки 2 (есть строка заголовка)?

Конец выделения должен быть последней непустой ячейкой в столбце.

5 ответов5

5

См. Статью службы поддержки Microsoft. Как выбрать ячейки / диапазоны с помощью процедур Visual Basic в Excel, № 19 (Как выбрать весь диапазон смежных ячеек в столбце).

2

Попробуй это:

Range(Range("A2"),Range("A2").End(xldown)).Select

или это:

Range(Range(Cells(2, 1), Cells(2, 1)), Range(Cells(65535, 1), Cells(65535, 1)).End(xlUp)).Select
1

Вы можете использовать сочетания клавиш Excel. Попробуйте Ctrl + Home.

Это приведет вас к ячейке A1 (если вы не использовали панель замораживания). Переместитесь на одну ячейку вниз, а затем с помощью кнопок со стрелками Ctrl + Shift + Down выберите до последней введенной строки.

Если вам нужно выбрать значение столбца, используйте кнопку со стрелкой вправо вместо кнопки со стрелкой вниз .

1

Ссылаясь на этот ответ SO, единственный безопасный метод - это метод .find() .
Все другие методы могут дать неправильные результаты, если вы ранее удалили несколько ячеек.

Пример получения последних ячеек

Lastrow =  Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Lastcol =  Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column

И конкретный ответ на ваш вопрос (при условии, что ваши данные находятся в столбце 2, начиная со строки 2)

Range([B2], [B:B].Find("*", [B1], , , xlByRows, xlPrevious)).select

0

Этот фрагмент кода усредняет все, кроме заголовка с заголовком в ячейке "B1"

Dim GG as Long
GG = Application.WorksheetFunction.Average(ActiveSheet.Range("B2", Range("B2").End(xlDown)))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .