Свойство Range

Работа с объектами Range

Ссылки на объекты

Если вы ссылаетесь на объект в VBA, для обращения к нему вводятся названия всех рас­положенных выше в иерархической структуре объектов, разделенных точкой. Что делать, ес­ли в Excel открыты две рабочих книги, и в обеих имеется рабочий лист с названием Лист1? В этом случае в ссылке упоминается контейнер требуемого объекта: Workbooks ("Книга1"). Worksheets ("Лиет1"}

Без указания рабочей книги редактор Visual Basic искал бы лист Лист1 в активной рабо­чей книге.

Чтобы сослаться на определенный диапазон (например, ячейку А1) на рабочем листе с на­званием Лист1 в рабочей книге Книга1, можно использовать следующее выражение:

Workbooks(" Книга 1").Worksheets(" Лист 1").Range("Al")

Полная ссылка из предыдущего примера включает объект Application и выглядит та­ким образом:

Application.Workbooks(" Книга 1").Worksheets(" Лист 1").Range(“Al”)

Однако в большинстве случаев можно опускать объект Application в ссылках (кроме него использоваться больше нечему). Если объект Книга1 — это активная рабочая книга, то опустите ссылку на нее и запишите рассматриваемое выражение следующим образом:

Worksheets ("Лист1"). Range (" Al ")

Если Лист1 является активным рабочим листом, можно еще более упростить выражение:

Range (" Al ")

В основном, работа, которая выполняется в VBA, связана с управлением ячейками и диапазонами на рабочих листах, что и является основным предназначением электронных таблиц. Вопрос управления ячейками в VBA рассматривался ранее при обсуждении относительного и абсолютного способов записи макросов, однако вам необходимо знать его как можно глубже.

Объект Range содержится в объекте Worksheet и состоит из одной ячейки или диапа­зона ячеек на отдельном рабочем листе. В следующих разделах будут рассмотрены три спо­соба задания ссылки на объекты Range в программе VB А.

¦ Свойство Range объекта класса Worksheet или Range.

¦ Свойство Cells объекта Worksheet.

¦ Свойство Offset объекта Range.

Свойство Range возвращает объект Range. Из справочных сведений по свойству Range вы узнаете, что к данному свойству обращаются с помощью нескольких вариантов синтаксиса:

объект. Range (ячейка1);

объект. Range (ячейка1, ячейка2).

Свойство Range относится к одному из двух типов объектов: объекту Worksheet или объекту Range. В данном случае ячейка! и ячемка2 указывают параметры, которые Excel будет воспринимать как идентифицирующие диапазон (в первом случае) или очерчивающие диапазон (во втором случае). Ниже следует несколько примеров использования метода Range.

В данной главе уже рассматривались примеры, подобные представленным ниже. Далее приведена инструкция, которая вводит значение в указанную ячейку: значение 1 вводится в ячейку А1 на листе Лист1 активной рабочей книги:

Worksheets("Лист1").Range("А1").Value = 1

Свойство Range также поддерживает имена,определенные в рабочих книгах. Поэтому если ячейка называется Ввод, то для введения значения в эту ячейку может использоваться оператор

Worksheets(" Лист 1”). Range(" Ввод ").Value = 1

В следующем примере в диапазон из 20-ти ячеек на активном листе вводится одинаковое зна­чение. Если активный лист не является рабочим листом, то отображается сообщение об ошибке:

ActiveSheet.Range("Al:B10").Value = 2

Приведенный ниже пример приведет к тому же результату, что и предыдущий.

Range (" Al ", " B 10") = 2

Отличие заключается лишь в том, что опущена ссылка на лист, поэтому предполагается активный рабочий лист. Кроме того, пропущено свойство, поэтому используется свойство по умолчанию (для объекта Range это свойство Value). В этом примере используется второй синтаксис ссылки на свойство Range. В данном случае первый аргумент — это левая верхняя ячейка диапазона, а второй аргумент— это ячейка в правом нижнем углу диапазона.

В следующем примере для получения пересечения двух диапазонов применяется оператор пересечения Excel (пробел). Пересечением является одна ячейка— Сб. Следовательно, дан­ный оператор вводит значение 3 в ячейку С б:

Range ("С1:С10” “А6:Е6") = 3

Наконец, в следующем примере значение 4 вводится в пять ячеек, т.е. в независимые диа­пазоны. Запятая выполняет роль оператора объединения:

Range (" A 1, A 3,А5,А7,А9") = 4

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

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

ActiveCell. Range ("В2”) = 5

Существует также намного более понятный способ обратиться к ячейке по отношению к диапазону— это свойство Offset (см. далее в этой главе).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: