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

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

Изучение любого объекта - это прежде всего изучение его свойств и методов. Среди всех свойств объекта Range выделим следующие.

  • Address (Адрес) - возвращает текущее положение диапазона.

  • Count (Счет) - возвращает количество ячеек в диапазоне.

  • Formula (Формула) - возвращает формулу, по которой вычисляется значение, отображаемое в ячейке.

  • Offset (Смещение) - возвращает величину смещения одного диапазона относительно другого.

  • Resize (Изменение размеров) - позволяет изменять текущее выделение диапазона.

  • Value (Значение) - возвращает значения ячеек, составляющих диапазон.

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

Чтобы поэкспериментировать со свойствами объекта Range, создадим процедуру. Сначала закройте все открытые рабочие книги, а затем откройте новую рабочую книгу. Будем считать, что текущий рабочий лист у вас Лист1.

  1. Введите число 100 в ячейку В1, число 200 - в ячейку В2 и 300 - в ячейку В3.

  2. В ячейку В4 введите формулу =СУММ (В1: В3).

  3. Нажмите комбинацию клавиш <Alt+F11>, чтобы открыть редактор Visual Basic, и вставьте модуль в текущую рабочую книгу.

  4. Создайте новую процедуру и назовите ее СвойстваДиапазона.

  5. Введите код процедуры

ThisWorkbook.Worksheets("Лист1").Range("A1").Activate

ActiveCell.Offset(2,2).Activate

MsgBox "Текущая ячейка - " & ActiveCell.Address

MsgBox "Значение ячейки B4 = " & Range("B4").Value

MsgBox "Формула в ячейке В4: " & Range("B4").Formula

  1. Перейдите на Лист1 рабочей книги и выполните процедуру СвойстваДиапазона. Появится первое окно с сообщением, что текущей ячейкой является ячейка С3 (рис. 10.1).

  2. Щелкните на кнопке ОК. Следующее окно сообщения покажет значение, отображаемое в ячейке В4.

  3. Щелкните на кнопке ОК. Последнее окно покажет формулу, содержащуюся в ячейке В4. (Обратите внимание, что хотя формула в ячейке В4 введена русскими буквами, процедура корректно ее обработала и преобразовала в формулу англоязычной версии Excel. - Прим. ред.)

  4. Щелкните на кнопке ОК для закрытия окна сообщения.

Рис. 10.1. В создании текста этого сообщения использовано свойство Address

Рассмотрим эту процедуру подробнее. Ее полный код приведен в листинге 10.1.

Листинг 10.1. Процедура СвойстваДиапазона

1: Sub СвойстваДиапазона ()

2:  ThisWorkbook.Worksheets("Лист1").Range("A1").Activate

3:  ActiveCell.Offset(2,2).Activate

4:  MsgBox "Текущая ячейка" & ActiveCell.Address

5:

6:  MsgBox "Значение ячейки B4 = " & Range("B4").Value

7:  MsgBox "Формула в ячейке В4: " & Range("В4").Formula

8: End Sub

Процедура начинается с активизации ячейки А1 (т.е. установки на ней табличного курсора):

ThisWorkbook.Worksheets("Лист1").Range("A1").Activate

После активизации ячейки A1 свойство Offset перемещает табличный курсор на ячейку С3, процедура показывает адрес новой активной ячейки в окне сообщения:

ActiveCell.Offset(2,2).Activate

MsgBox "Текущая ячейка - " & ActiveCell.Address

Свойство Offset позволяет перемещаться от одного диапазона к другому и имеет следующий синтаксис:

имя__диапазона.Offset (смещ_строк, смещ_столбцов)

Аргументы смещ_строк и смещ_столбцов задают направление перемещения табличного курсора. В нашей процедуре оба аргумента принимают значение 2, что позволяет перейти из ячейки А1 в ячейку С3.

Последние два оператора процедуры с помощью окон сообщения отображают значение и формулу ячейки В4:

MsgBox "Значение ячейки В4 = " & Range("B4").Value

MsgBox "Формула в ячейке В4: " & Range("B4").Formula

Эти операторы показывают различие между свойствами Value и Formula. Свойство Value возвращает то, что отображается в ячейке, а свойство Formula - то, что находится в ячейке.