Свойства и методы Range

Смещение и свойство Offset

Выше было отмечено, что при создании объектов Range нельзя пользоваться смещением – доступен только формат А1. Тем не менее, можно использовать смещение, чтобы переходить от одного объекта Range к другому, например от одной ячейки к другой, отстоящей от первой на определенном расстоянии. Достигается это благодаря свойству (или, можно сказать, методу) Offset объекта Range. Свойство Offset возвращает новый объект Range, отстоящий от прежнего на заданное расстояние.

Синтаксис свойства Offset:

Offset(RowOffset, ColumnOffset)

RowOffset – смещение по строкам;

ColumnOffset – смещение по столбцам.

Приведем пример создания нового объекта, смещенного относительно исходного:

Dim myRange As Range, myRangel As Range Set myRange = Range("A1:A4") Set myRangel = myRange.0ffset(2, 3) myRangel.Select

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

For Each currcell In Range("E1:E6"). Cells If Application.WorksheetFunctlon.IsText (currcell.Value) Then currcell.0ffset(0, 1).Formula = "Text" ElseIf Application.WorksheetFunction.IsNumber(currcell.Value) Then curlcell.0ffset(0, 1).Formula = "Number" ElseIf Application.WorksheetFunction.IsLogIcaKcurrcell.Value) Then currcell.0ffset(0, 1).Formula = "Logical" ElseIf Application.WorksheetFunction.IsError(currcell.Value) Then currcell.0ffset(0, 1).Formula = "Error" ElseIf currcell. Formula = "" Then currcell.0ffset(0, 1).Formula = "Пусто" End If Next currcell

В таб. 6.3.1 приведены основные свойства объекта Range.

Таблица 6.3.1. Свойства объекта Range

Address Возвращает строку, задающую ссылку на Range-объект. Эту ссылку можно выдавать в формате А1 или R1C1, как абсолютную или относительную. Вид возвращаемого значения определяют параметры этого свойства (метода)
Cells, Columns, Rows, EntireColumn, EntireRow Возвращаются коллекции ячеек, столбцов или строк, входящие в объект Range. Возвращаемые объекты также являются Range-объектами. Последние два свойства возвращают один или несколько столбцов или строк, охватывающих объект Range
Text, Characters Свойство Text возвращает строку текста, связанного с Range объектом (ячейкой). Имеет статус только для чтения. Если нужно изменить весь текст или его часть, то можно использовать свойство (метод) Characters, два параметра которого – Start и Length – позволяют выделить требуемую подстроку текста
Column, Row Возвращают соответственно номер первого столбца или первой строки в области объекта Range
CurrentArray CurrentRegion Первое из этих свойств возвращает весь массив, частью которого является объект Range (ячейка). Второе возвращает текущий регион, то есть минимальную прямоугольную область, содержащую элементы из Range и окаймленную пустыми строками и столбцами или границами таблицы. Если Range представляет связную область, то текущий регион охватывает Range, для несвязной области он выделяет лишь некоторую его часть.
Dependents, Precedents DirectDependents, DirectPrecedents В первых двух случаях возвращается объект Range, содержащий все ячейки, зависимые или предшествующие ячейкам исходного объекта. Результат обычно, представляет несвязную область. В двух последних случаях возвращаются только непосредственно зависимые и непосредственно предшествующие ячейки
Определим понятия зависимых и предшествующих ячеек. Если формула в ячейке Y содержит ссылку на ячейку X, то говорят, что Y непосредственно зависит от X, а Х непосредственно предшествует Y. Обобщая понятие непосредственной зависимости, мы говорим, Y зависит от X, а Х предшествует Y, если существует цепочка ячеек Zl, Z2, ... ZK, начинающаяся с Х и заканчивающаяся Y, такая, что каждые два соседние элемента цепочки связаны отношением непосредственной зависимости (непосредственного предшествования).
Formula, FormulaR1C1 Первое из свойств позволяет прочесть или задать формулу в формате А1, второе - в формате R1C1
NumberFormat Позволяет выяснить или установить код формата данных
PivotTable Возвращает сводную таблицу – объект PivotTable, если таковой содержится в Range
Value Значение указанной ячейки. Если она пуста, то возвращается значение Empty, что можно проверить, вызвав функцию IsEmpty. Если объект Range содержит более одной ячейки, то возвращается массив значений, что можно проверить, вызвав функцию IsArray