Национальный исследовательский университет "Высшая Школа Экономики"
Опубликован: 01.04.2010 | Доступ: свободный | Студентов: 3836 / 673 | Оценка: 4.45 / 4.06 | Длительность: 08:48:00
ISBN: 978-5-9556-0119-9
Специальности: Программист
Лекция 1:

Использование макрорекордера. Абсолютные и относительные ссылки

Лекция 1: 12 || Лекция 2 >

1.2 Абсолютные и относительные ссылки

Запись абсолютных и относительных ссылок в формулах на рабочем листе

Например, если активна ячейка A4, то ссылку на ячейку D3 можно задать как D3 (стиль A1 ) или R[-1]C[3] (стиль R1C1 ).

При записи формулы в стиле A1 признаком абсолютной ссылки является знак доллара ($) перед адресом строки и/или столбца. В стиле R1C1 для задания абсолютной ссылки используются индексы ячейки. Например, на ячейку D3 указывает абсолютная ссылка $D$3 в стиле A1 и абсолютная ссылка R3C4 в стиле R1C1.

Запись абсолютных и относительных ссылок в процедурах VBA

В процедурах, создаваемых при помощи макрорекордера, абсолютные и относительные ссылки записываются в стиле R1C1.

По умолчанию после запуска макрорекодера кнопкаотжата, что означает, что при записи процедур используются абсолютные ссылки.

Команда вычисления размера вклада в ячейке B13 с использованием абсолютных ссылок (набор адреса ячейки со знаками $ во время записи макроса) будет выглядеть так:

ActiveCell.FormulaR1C1 = "=R10C2*(1+R12C2/12)^R11C2"

Можно установить использование относительных ссылок при записи процедур Для этого после запуска макрорекордера нажмите кнопку Относительная ссылкана панели инструментов Остановить запись (см. рис. 1.2). Кнопка будет изображена на оранжевом фоне. Относительные ссылки будут использоваться до конца текущего сеанса работы в MS Excel или до повторного нажатия кнопки Относительная ссылка.

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

Другой способ задания относительных ссылок - использование свойства Offset объекта Range.

Примеры

  1. Процедура Макрос1 закрашивает ячейки интервала B1:C5 желтым цветом ( рис. 1.8).
    Процедура Макрос1 записана с абсолютными ссылками

    Рис. 1.8. Процедура Макрос1 записана с абсолютными ссылками
    Выделение интервала B1:C5 записано с абсолютными ссылками. При повторном выполнении процедуры снова будет выделен тот же интервал B1:C5, независимо от того, какая ячейка будет активной перед запуском процедуры.
  2. Процедура Макрос2 желтым цветом закрашивает интервал ячеек, смещенный относительно активной ячейки.
    Процедура Макрос2 записана с относительными ссылками

    Рис. 1.9. Процедура Макрос2 записана с относительными ссылками
    В команде выделения интервала объект Range смещен относительно активной ячейки - свойство Offset устанавливает смещение на один столбец. Процедура Макрос2 окрасит интервал из двух столбцов и пяти строк, начинающийся в соседнем по отношению к активной ячейке столбце.
Лекция 1: 12 || Лекция 2 >
Дмитрий Денисов
Дмитрий Денисов

Еще раз повторяю вопрос  - отправил договор и сканы документов по почте - в начале августа, до  5 го, внес предоплату - летом действовала скидка - чтобы пройти курс в августе, но я уезжал в Москву. По возвращению - и  в течение месяца - никакого ответа, никаких зачислений, ничего. Как проверить, пришли ли мои документы в Интуит, предоплата, почему нет зачисления.

Дмитрий Денисов
Дмитрий Денисов

Как записаться на курс, оплатить, не ориентируюсь в программе.

Ранее у Вас учился.

Работаю преподавателем, есть справка. Как получить скидку, т.е. оплата 2000


 

Денис Ермаков
Денис Ермаков
Россия
Alexander Vizelka
Alexander Vizelka
Россия