В этом руководстве объясняется, как использовать текущий регион в 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)Конец подписки |
Когда мы запустим приведенный выше код, появится следующее окно сообщения