Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика.doc
Скачиваний:
44
Добавлен:
22.03.2016
Размер:
12.91 Mб
Скачать

3.2. Объект Range

В иерархии Excel объект Range (диапазон) идет сразу после объекта Worksheet и является одним из ключевых объектов VBA. Он не входит в состав никакого семейства объектов.

Объект Range описывает диапазон ячеек рабочего листа и возвращает свойства и методы. При работе с объектом Range имеется два способа ссылки на ячейки рабочего листа: относительная адресация (начало координат, задающее нумерацию строк и столбцов, связывается с объектом, вызвавшим Range) и абсолютная адресация.

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

.Value – возвращает значение из ячейки;

.Count – возвращает число объектов в наборе (в строке);

.Formula – вводит формулу;

.Column – возвращает семейство столбцов;

.Count – возвращает число объектов в наборе;

.Row – возвращает семейство строк;

.Name – возвращает имя диапазона;

.Font – возвращает объект шрифт;

.FormulaArray – вводит формулу в диапазон (Ctrl+Shift+Enter).

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

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

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

Свойство Range относится к одному из двух типов объектов: объекту Worksheet или объекту Range . В данном случае ячейка1 и ячейка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","B10") = 2.

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

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

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

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

Range ("A1,A3,А5,А7,А9") = 4.

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

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

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

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

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

ActiveSheet.Cells (3, 4) = 7.

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

ActiveCell.Cells (1, 1) = 5.

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

Private Sub CommandButton1_Click()

Cells.Clear

Cells.Activate

Cells.Columns(1)=”куку

Cells.Clear

End Sub

Private Sub CommandButton1_Click ()

Range(“A1:A3”).Cells=”Таблица

End Sub