Найти тему
Doc

Средства выделения ячеек на листе Excel

Оглавление

Диапазоны и умение работать с ними в программе VBA является одним из основных навыков. При работе с таблицами (форматирование, копирование значений, сравнивание их) без умения задать диапазон, выгрузить значения из диапазона и т.п. работа никогда не будет эффективной и производительной. Поэтому в этой статье, мы рассмотрим основные принципы работы с диапазонами.

1. Определение границ диапазона с помощью кода VBA

На языке программирования границы диапазона задаются следующими командами:

CurrentRegion

CurrentRegion - аналог команды Ctrl+A. С помощью этой команды автоматически выделяется диапазон, не имеющий разрывов ни по строкам ни по столбцам

Пример кода с командой CurrentRegion:

Sub выделить_диапазон ()
dim r as Range
set r = selection ' присваиваем переменной r выделенную ячейку
set r = r.CurrentRegion 'расширяем диапазон по строкам и столбцам до ячеек, в которых отсутствуют какие-либо значения
r.Select - выделяем полученный в результате команды диапазон
End Sub

UsedRange

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

Независимо от наличия заполненных или незаполненных ячеек код выбирает самую первую верхнюю левую ячейку и нижнюю правую ячейку
Независимо от наличия заполненных или незаполненных ячеек код выбирает самую первую верхнюю левую ячейку и нижнюю правую ячейку
Sub выделить_диапазон ()
dim r as Range
set r = ActiveSheet.UsedRange 'на активном листе, в диапазон включаются ячейки расположенные между верхней левой и нижней правой ячейками
r.Select - выделяем полученный в результате команды диапазон
End Sub

EntireRow

Данная команда выделяет всю строку, в которой расположена выделенная ячейка

Sub выделить_диапазон ()
dim r as Range
set r = selection ' присваиваем переменной r выделенную ячейку
set r = r.EntireRow 'диапазон расширяется на всю строку, в которой находилась выделенная ячейкка
r.Select - выделяем полученный в результате команды диапазон
End Sub

EntireColumn

Команда аналогичная команде EntireRow, только все действия производятся со столбцом

Наука
7 млн интересуются