Текущий регион VBA

В этом руководстве объясняется, как использовать текущий регион в VBA.

В CurrentRegion Свойство в VBA - это способ выбрать все ячейки, содержащиеся в диапазоне, с которыми вы, возможно, захотите работать. Пока все ячейки в диапазоне идут друг за другом или «касаются» друг друга, CurrentRegion выберет каждую ячейку в регионе.

CurrentRegion Синтаксис

Синтаксис очень прост:

1 Диапазон ("E11"). CurrentRegion.Select

где вы должны указать ячейку, текущий регион которой вы хотите выбрать, а затем использовать CurrentRegion.Select для выбора диапазона ячеек.

Получение текущего региона

Рассмотрим следующий рабочий лист.

следующая подпроцедура выберет все ячейки в базе данных

1234567 Sub FindCurrentRegion ()Dim rng As Range'установите диапазон в ячейку E11Установить rng = Range ("E11")'выберите текущий регионrng.CurrentRegion.SelectКонец подписки

Если мы запустим процедуру, все ячейки в CurrentRegion ячейки E11 будет выбрано.

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

Однако, если мы удалим еще больше данных, мы можем получить приведенный ниже пример для текущей области ячейки E11.

Помещая информацию в D13, мы получаем следующее:

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

Подсчет строк и столбцов в текущей области

Мы можем использовать CurrentRegion для подсчета строк и столбцов.

12345678910111213 Sub FindCurrentRegion ()Dim rng As RangeDim iRw как целое числоDim iCol как целое число'установить диапазонУстановить rng = Range ("E11")'подсчитать строкиiRw = rng.CurrentRegion.Rows.Count'подсчитать столбцыiCol = rng.CurrentRegion.Columns.Count'показать результат в окне сообщенияMsgBox ("У нас есть" & iRw & "строки и" & iCol & "столбцы в нашем текущем регионе")Конец подписки

Если мы запустим процедуру, появится следующее окно сообщения.

Очистка текущего региона

Мы также можем использовать свойство текущего региона, чтобы очистить диапазон ячеек.

123456 Sub ClearCurrentRegion ()Dim rng As Range'установить диапазонУстановить rng = Range ("E11")rng.CurrentRegion.ClearКонец подписки

Назначение текущего региона переменной

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

12345678910 Sub AssignCurrentRegionToVariable ()Dim rng As Range'установить диапазон как текущий регион E11Установите rng = Range ("E11"). CurrentRegion'раскрасьте фон и текстrng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Truerng.Font.Color = -16776961Конец подписки

Если мы запустим описанную выше процедуру, мы получим рабочий лист, как показано ниже!

Получение начальной и конечной ячеек в текущем регионе

С немного более сложным кодом мы можем получить первую и последнюю ячейку в текущей области.

123456789101112131415161718 Sub GetStartAndEndCells ()Dim rng As RangeDim iRw как целое числоDim iCol как целое числоDim iColStart, iColEnd, iRwStart, iRwEnd As String'установить переменную диапазона как текущую область E11Установите rng = Range ("E11"). CurrentRegion'установить начальный столбец для диапазонаiColStart = rng.Column'получить конечный столбец для диапазонаiColEnd = iColStart + (rng.Columns.Count - 1)'получить начальную строку для диапазонаiRwStart = rng.Row'получить конечную строку диапазонаiRwEnd = iRwStart + (rng.Rows.Count - 1)'отображать адрес начальной и конечной строк и столбцов в окне сообщенияMsgBox ("Диапазон начинается с" & Cells (iRwStart, iColStart) .Address & "и заканчивается в" & Cells (iRwEnd, iColEnd) .Address)Конец подписки

Когда мы запустим приведенный выше код, появится следующее окно сообщения

wave wave wave wave wave