Выбрать все ячейки со значением под заголовком

У меня есть код, который выбирает столбец с заголовком «Адрес».

Sub FindAddressColumn() Dim rngAddress As Range Set rngAddress = Range("A1:Z1").Find("Address") If rngAddress Is Nothing Then MsgBox "Address column was not found." Exit Sub End If Range(rngAddress, rngAddress.End(xlDown)).Select End Sub 

Я хочу выбрать вторую строку или строку после заголовка «Адрес» вплоть до последней строки со значением.

Используйте функцию MATCH объекта WorksheetFunction, чтобы найти метку заголовка столбца в первой строке.

 Sub FindAddressColumn() dim cl as long with worksheets("Sheet1") if not iserror(application.match("address", .rows(1), 0)) then cl = application.match("address", .rows(1), 0) .range(.cells(2, cl), .cells(rows.count, cl).end(xlup)).select else MsgBox "Address column was not found." Exit Sub end if end with End Sub 

Я предпочитаю смотреть снизу вверх, чтобы найти последнюю заполненную ячейку в столбце, но если вы предпочитаете смотреть сверху вниз, приведенный выше код может быть легко изменен в зависимости от ситуации.

Метод Range. Select ¹ не всегда является самым надежным методом ссылки на отдельные или группы объектов Range . Непосредственное обращение к родительскому листу с помощью команды With … End With должно помочь.


¹ См. Как избежать использования Select в макросах Excel VBA для получения дополнительных методов, чтобы избежать использования выбора и активации для достижения ваших целей.

Если у вас есть пробелы в столбце адресов, используйте этот код:

 Sub FindAddressColumn() Dim rngAddress As Range, LastRow As Long Set rngAddress = Range("A1:Z1").Find("Address") If rngAddress Is Nothing Then MsgBox "Address column was not found." Else LastRow = Cells(Rows.Count, rngAddress.Column).End(xlUp).Row Range(Cells(2, rngAddress.Column), Cells(LastRow, rngAddress.Column)).Select End If End Sub 
Interesting Posts

Настроить отображение целевого места

Подключение Excel с SQL Server 2008

excel vba: суммирование значения столбца до последнего столбца

Добавление строки с скопированными формулами, которые включают вновь названный лист

Excel Data перемещает код аргумента функции сохранения в той же ячейке после перемещения данных

Кнопка Creeping ActiveX

excel vba получает диапазон выбранного пользователем диапазона с помощью мыши и копирует его в буфер обмена

Экран подсказки гиперссылки, требующий ремонта рабочей книги

Ошибка 9, активирующая журнал в другом пути

Использование Countifs со звездочками в ячейке

ThisWorkbook.Sheets (1) .Выберите (False) Не работает

Как читать и писать в файл xlsx с помощью NodeJS?

Как я могу прочитать безопасный каталог sharepoint с VBA?

Список проверки вставки vba – ошибка 1004, когда таблица заблокирована?

Округление двойных значений в C ++, например, в MS Excel

Давайте будем гением компьютера.