Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум по VBA(реценц последний).doc
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
2.47 Mб
Скачать
    1. Работа с диапазонами

Объект Range (Диапазон) содержится в объекте WorkSheet (Рабочий лист) и может состоять из отдельной ячейки или набора ячеек одного рабочего листа.

Язык VBA предлагает три способа ссылки на объект Range:

  • в виде свойства Range (диапазон) объекта WorkSheet (или объекта класса Range);

  • в виде свойства Cells (Ячейки) объекта WorkSheet;

  • в виде свойства Offset (Смещение) объекта Range.

    1. Использование свойства Range

Свойство Range возвращает объект Range. Свойство Range имеется у двух типов объектов: объектов WorkSheet и объектов Range. Это свойство имеет две синтаксические формы:

Object. Range (ячейка1)

Object. Range (ячейка1, ячейка2)

Здесь ячейка1 и ячейка2 – ссылки на ячейки в формате, принятом в Excel, причем во второй синтаксической форме адреса ячеек определяют границы диапазона.

Рассмотрим несколько примеров. В первом примере ячейке В3 на листе Лист1 присваивается значение 123:

WorkSheets(“Лист1”). Range(“B3”).Value = 123

Если ячейке В3 присвоить имя «Данные», то можно было записать ссылку на ячейку по ее имени:

WorkSheets(“Лист1”). Range(“Данные”).Value = 123

В следующем примере ячейкам диапазона А3:С10 присваивается значение 100:

ActiveSheet. Range(“A3:C10”).Value = 100

Если активный лист не является рабочим листом, а представляет собой, например, лист диаграммы, то появляется сообщение об ошибке.

Такое же действие может выполнить оператор

Range(“A3”, “C10”) = 100

Здесь ссылка на лист опущена. По умолчанию предполагается активный лист. Так как свойство Value назначается объекту Range по умолчанию, его также можно опустить. В этом примере первый аргумент является адресом левой верхней ячейки диапазона, второй – адресом правой нижней ячейки.

Следующий пример использует оператор пересечения диапазонов, возвращающий ячейки, стоящие на пересечении двух диапазонов (здесь это ячейка С6):

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

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

Range(“А1, А3, А6, А8, А16”) = 4

Во всех приведенных выше примерах использовалось свойство Range объекта WorkSheet. Теперь рассмотрим пример использования этого свойства у объекта Range. Необходимо помнить, что объект Range – это всегда активная ячейка. Поэтому в операторе

ActiveCell. Range(“B2”) = 5

значение 5 присваивается ячейке, отстоящей от активной на один столбец вправо и на одну строку ниже.

“B2”:

где В – число столбцов на которое смешается курсор относительно активной ячейки,

2 – число строк на которое смещается курсор относительно активной ячейки.

Т.е. аргумент свойства Range задает такое смещение относительно активной ячейки, как если бы активной была ячейка А1. Более удобным образом смещение задается специальным свойством Offset.

    1. Использование свойства Cells

Подобно свойству Range, данное свойство имеют объекты WorkSheet и Range. Наиболее употребимы синтаксические формы:

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

Например:

WorkSheet (“Лист1”). Cells(1, 1) = 9

На листе Лист1 ячейке А1 присваивается значение 9.

Задаются номера строк (число от 1 до 65536) и номера столбцов (число от 1 до 256), определяющие местоположение ячейки.

ActiveSheet. Cells(3, 4) = 3

На активный рабочий лист в ячейку D3 вводится число 3.

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

  1. Object. Cells

Синтаксическая форма свойства Cells возвращает все ячейки рабочего листа. Например, можно удалить содержимое рабочего листа, использовав оператор

ActiveSheet. Cells. ClearContents

Здесь ClearContents – метод очистки содержимого, применяемый к свойству – объекту Cells.