Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Объект Range: свойства и методы, возвращающие объект Range




Существует четкая логика в том, как создаются объекты Range. В Word Объекты верхнего уровня, например, Document, имеют метод Range, позволяющий создать новый диапазон. Объекты более низкого уровня, например Paragraph, имеют свойство Range, возвращающее диапазон, связанный с объектом. В Excel ситуация другая. Все объекты Excel имеют только свойство Range. Это свойство имеют и верхний в иерархии объект Application и Worksheet и сам объект Range, представляющий объекты нижнего уровня вплоть до ячейки.

Свойства, возвращающие объект Range: Range, Cells, Columns, Rows. Понятно, что с помощью, например, свойства Range можно выделить некоторую область не только из области заданной рабочим листом, но и из любой подобласти, определенной объектом Range. Это же относится и ко всем другим свойствам, возвращающим объект Range, напоминающий матрешку.

Hyperlinks - возвращает коллекцию гиперссылок, принадлежащих области объекта Range.

 

Объект Range:свойство Range.

Объект Range позволяет сочетать гибкость VBA и мощь рабочего листа Excel. Более 400 встроенных функций рабочего листа существенно упрощают и делают более наглядным программирование на VBA.

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

Range.

Перечислим основные свойства объекта Range.

Address, AddressLocals Возвращает строку, задающую ссылку на Range объект. Во втором случае это ссылка в языке пользователя. Эту ссылку можно выдавать в формате A1 или R1C1, как абсолютную или относительную. Вид возвращаемого значения определяют параметры этого свойства (метода).
Areas Применимо обычно к объекту Selection и возвращает коллекцию объектов Range в случае, когда Selection (Range) задает несвязную область. Возвращается сам объект Range, если область содержит только один объект.
Borders Возвращает коллекцию из четырех границ объекта Range. Позволяет выделить цветом и (или) толщиной линии границы объекта.
Text, Characters Свойство Text возвращает строку текста, связанного с Rangeобъектом (ячейкой). Имеет статус только для чтения. Если нужно изменить весь текст или его часть, то можно использовать свойство (метод) Characters, два параметра которого: Start и Lengthпозволяют выделить требуемую подстроку текста.
Column, Row Возвращают соответственно номер первого столбца или первой строки в области объекта Range.
Font Возвращает объект Font, используемый при написании текста в области объекта Range.
FormatConditions Возвращает коллекцию условных форматов, содержащую не более трех элементов - объектов класса
FormatCondition. Объект Range может иметь до трех условных форматов, выбор каждого из которых зависит от выполнения условия форматирования. Условие определяется параметрами объектаFormatCondition - оператором условия и константой, которая сравнивается со значением выражения, заданного объектом Range. В простейшем случае, когда объект Range задает ячейку, то значение в ячейке сравнивается с заданной константой. Метод Add коллекции позволяет задать новое условие форматирования. Методы Modify иDelete объекта FormatCondition позволяют модифицировать или удалять существующий формат. Параметры формата задаются с использованием объектов Borders, Font и Interior, возвращаемых свойствами объекта FormatCondition.
Formula, FormulaR1C1, FormulaArray, FormulaLocal, FormulaHidden, FormulaLabel, FormulaR1C1Local Первое из них позволяет прочесть или задать формулу в формате A1, второе - в формате R1C1, третье -формулу над массивами. Остальные также так или иначе связаны с заданием формул.
Locked Возвращает значение True, если объект закрыт для модификаций иFalse, если модификация данного объекта возможно, хотя рабочий лист защищен. Возвращается Null, есди в области объекта Rangeсуществуют закрытые и открытые ячейки.
Offset Об этом свойстве, возвращающем объект Range, у уже подробно рассказывал.
Style Свойство имеет статус "только для чтения" - возвращает объект Style, характерный для объекта Range.
Value Значение указанной ячейки. Если она пуста, то возвращается значение Empty, что можно проверить, вызвав функцию IsEmpty. Если объект Range содержит более одной ячейки, то возвращается массив значений, что можно проверить, вызвав функцию IsArray. ФункцииIsNumber, IsText позволяют определить тип значения, хранимого в ячейке.

 

 

Объект Range:свойство Cells Offset.

Свойство Cells

Другим способом сослаться на диапазон является использование свойства Cells. Как и Range, вы можете использовать свойство Cells в объектах Worksheet и Range. Справочная система указывает на три варианта синтаксиса свойства Cells:

объект. Cells (номер_строки, номер_столбца);

объект. Cells (номер_строки);

объект. Cells.

Проиллюстрируем на примерах особенности применения свойства Cells. Вначале в ячейку А1 листа Лист1 введите значение 9. В данном случае используется первый синтаксис, где аргументами являются номер строки (от 1 до 65536) и номер столбца (от 1 до 256):

Worksheets ("Лист1"). Cells (1, 1)= 9

Ниже приведен пример, в котором значение 7 вводится в ячейку D 3 (т.е. пересечение строки 3, столбца 4) активного рабочего листа:

ActiveSheet. Cells (3, 4) = 7

Вы можете также использовать свойство Cells объекта Range. При этом объект Range, который возвращается свойством Cells, задается относительно левой верхней ячейки диапазона Range, на который мы ссылаемся. Сложно? Может быть. Приведем пример. Сле­дующая инструкция вводит значение 5 в активную ячейку. Помните, что в данном случае ак­тивная ячейка рассматривается как ячейка А1 на рабочем листе:

ActiveCell. Cells (1, 1) = 5

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

Чтобы ввести значение 5 в ячейку, которая находится под активной, можно обратитесь к такой инструкции:

ActiveCell. Cells (2, 1) = 5

Предыдущий пример можно описать так: необходимо начать с активной ячейки, рассмат­ривая ее как ячейку А1. Затем обратиться к ячейке во второй строке и первом столбце.

Иной синтаксис метода Cells использует один аргумент, который задается в диапазоне от 1 до 16777216. Второе число равно количеству ячеек на рабочем листе (65536 строк ум­ножить на 256 столбцов). Ячейки нумеруются, начиная с А1 вправо, затем вниз и вправо вдоль следующей строки. 256-я ячейка — это IV 1. а 257-я — А2.

Далее в ячейку НЭ активного листа (520-ю ячейку на рабочем листе) введем значение 2: ActiveSheet. Cells (520) = 2

Чтобы отобразить значение в последней ячейке на рабочем листе (IV 65536), используйте оператор

MsgBox ActiveSheet. Cells (16777216)

Этот синтаксис можно использовать и с объектом Range. В таком случае будет получена ячейка по отношению к указанному объекту Range. Например, если объект Range — это диа­пазон A 1-. D 10 (40 ячеек), то свойство Cells может иметь аргумент от I до 40 и возвращать одну из ячеек объекта Range. В следующем примере значение 2000 вводится в ячейку А2, так как А2 является пятой ячейкой (считая сверху направо, затем вниз) в указанном диапазоне: Range (" Al: D 10"). Cells {5) =2000

В предыдущем примере аргумент свойства Cells не ограничен значениями между 1 и 40. Если аргумент превышает количество ячеек в диапазоне, счет продолжается, будто диапазон больше, чем он есть на самом деле. Следовательно, оператор, подобный предыдущему, может изменить значение ячейки, которая на­ходится за пределами указанного диапазона Al – D 10.

Третий синтаксис свойства Cells возвращает все ячейки на указанном рабочем листе. В отличие от двух других, в этом синтаксисе, получаемые в результате данные — не одна ячейка, а целый диапазон. В приведенном ниже примере использован метод ClearContents по отношению к диапазону, полученному с помощью свойства Cells для активного рабоче­го листа. В результате будет удалено содержимое каждой ячейки на рабочем листе:

ActiveSheet. Cells. ClearContents

Свойство Offset

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

объект. Of fset (сдвиг_строки, сдвиг_столбца)

Два аргумента свойства Off set соответствуют смешению относительно левой верхней ячейки указанного диапазона Range. Эти аргументы могут быть положительными (сдвиг вниз или вправо), отрицательными (вверх или влево) или нулевыми. В приведенном ниже примере значение 12 вводится в ячейку, которая находится под активной ячейкой:

ActiveCell. Offset (1,0). Value = 12

В следующем примере значение 15 вводится в ячейку над активной ячейкой:

ActiveCell. Offset (-1,0). Value = 15

Если активная ячейка находится в строке 1, то свойство offset в предыдущем примере выдает ошибку, так как оно не возвращает несуществующий объект Range.

В процессе записи макроса в относительном режиме указания ссылки Excel использует свойство offset для обращения к ячейкам относительно начальной позиции (т.е. активной в момент начала записи макроса ячейки). Например, для генерации следующего кода использо­вана функция записи макросов. Вначале запишем макрос (при активной ячейке В1), потом введем значение в ячейки В1: ВЗ, а затем вновь вернемся к ячейке В1:

Sub Macrol()

ActiveCell.FormulaRlCl = "1"

ActiveCell.Offset(1, 0). Range ("Al").Select

ActiveCell.FormulaRlCl = "2"

ActiveCell.Offset(1, 0).Range("Al").Select

ActiveCell.FormulaRlCl = "3"

ActiveCell.Offset(-2, 0).Range("Al”).Select

End Sub

При записи макросов используется свойство FormulaRlCl. Как правило, для ввода зна­чения в ячейку применяется свойство Value. Однако при использовании FormulaRlCl или Formula результат будет таким же.

Также обратите внимание, что полученный код ссылается на ячейку Al, что довольно странно, так как эта ячейка даже не была задействована в макросе. Данная особенность про­цедуры записи макросов делает программу даже более сложной, чем необходимо. Вы можете удалить все ссылки на Range (" Al "), и макрос все равно будет работать нормально:

Sub Modified Macrol()

ActiveCell.FormulaRlCl = "1"

ActiveCell.Offsetd, 0).Select

ActiveCell.FormulaRlCl = "2"

ActiveCell.Offset(1, 0).Select

ActiveCell.FormulaRlCl = "3"

ActiveCell. Offset (-2, 0). Select

End Sub

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...