Объект Range содержится в объекте Worksheet и используется для представления одной или более ячеек рабочего листа. Непосредственно из ячеек доступны свыше 400 встроенных функций Excel, из них можно вызывать функции VBA, ячейки можно связывать с другими ячейками того же листа, других рабочих листов и других рабочих книг.
Этот объект «попадает между» единичными объектами и объектами из семейств. При ссылке на ячейки диапазона можно указывать адрес единичной ячейки (ее координаты, например: Range(“A1”)), адресный индекс (например: Range(“A1:F15”)) или имя, присвоенное диапазону (например, после выполнения присваивания Range(“A1”).Name=”Ячейка1” можно обращаться к ячейке по имени: Range(“Ячейка1”)).
Диапазон в программе можно задать следующим образом:
– используя ссылку на ячейку (например: Range(“D15”));
– используя имя диапазона (например: Range(“Итоги”));
– используя объект ActiveCell, указывающий на ячейку или объект Range, который имеет фокус при вводе данных с клавиатуры;
– используя объект Selection (в отличие от объекта ActiveCell, может указывать не только на одну ячейку или даже диапазон ячеек, но и на графические объекты и т.п.).
Основные свойства объекта Range:
– Address– расположение диапазона на рабочем листе (параметры определяют, возвращается ли внешняя ссылка, абсолютные или относительные координаты, стиль ссылок (нотация A1 или нотация R1C1));
– Cells – ссылка на ячейки по их положению относительно заданного объекта Range;
– Column– номер первого столбца в диапазоне;
– CurrentRegion – объект Range, включающий диапазон ячеек, границами которого являются пустые строки и столбцы (полезен например, если диапазон выделяемых данных изменяется – нужно выделить весь массив данных на листе);
– Count – количество ячеек, представляемых объектом (только для чтения);
– Dependents – диапазон ячеек, содержащих все зависимости исходного диапазона ячеек, т.е. все ячейки, в формулах которых есть ссылки на какие-либо ячейки из исходного диапазона (объект Range; только чтение);
– Name – имя диапазона;
– Row – номер первой строки в диапазоне;
– Value – значение, которое содержит диапазон (если в диапазоне несколько ячеек, то значением свойства является массив, содержащий значения всех ячеек диапазона);
– Formula – представленная в виде текстовой строки формула (или массив строк, содержащих формулы), которая содержится в диапазоне ячеек (включая знак “=”);
– Text– представленное в виде текстовой строки форматированное значение (или массив строк, содержащих форматированные значения), содержащееся в диапазоне (только чтение).
Основные методы объекта Range:
– AutoFit – задание автоматической настройки ширины столбца и высоты строки диапазона;
– Calculate – вызывает перевычисление всех формул диапазона;
– ClearContents – очищает все значения и формулы диапазона, но оставляет форматы;
– ClearComments – очищает комментарии;
– ClearFormats – удаляет формулы;
– ClearNotes – удаляет примечания;
– Copy – копирует значения из диапазона ячеек в другой диапазон или в буфер;
– Cut– вырезает значения из диапазона ячеек и помещает их в другой диапазон или в буфер;
– Count –число объектов (в диапазоне);
– PasteSpecial – специальная вставка из буфера обмена (реализация команды специальной вставки).
- Объект Range можно использовать совместно с семействами Rows и Columns (это свойства рабочих листов или диапазонов, возвращающие объекты Range, представляющие все строки и все столбцы рабочего листа или диапазона).
Номера первой строки и первого столбца являются свойствами диапазона. Чтобы вернуть номер последнего столбца в диапазоне, можно записать следующее выражение: