Выделить весь столбец без строки заголовка в макросе Excel


8

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

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

Ответы:


5

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


Это выбирает более миллиона строк в книге, которую я использую, хотя все, что больше 300 или около того, пустые.
Дейв

как насчет: Sub LastCellBeforeBlankInColumn () / Range ("A1"). End (xldown) .Select / End Sub

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 arrowчтобы выбрать до последней введенной строки.

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


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)))
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.