Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

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

Абсолютные и относительные ссылки записываются в стиле A1 и в стиле R1C1.

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

Относительные ссылки в стиле A1 всегда состоят из имени столбца и номера строки, а ссылки в стиле R1C1 задают в квадратных скобках смещение по отношению к активной ячейке. Направление смещения влево/вверх определяется знаком минус (–), а смещение вправо/вниз – отсутствием знака. Например, если активна ячейка A4, то ссылку на ячейку D3 можно задать как D3 (стиль A1) или R[-1]C[3] (стиль R1C1).

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

Макрорекордер

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

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

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

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

Пример

Процедуры закрашивают интервал ячеек желтым цветом.

Sub Макрос1()

'абсолютные ссылки

Range("B1:C5").Select

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

End Sub

Sub Макрос2()

'относительные ссылки

ActiveCell.Offset(0, 1).Range("A1:B5").Select

With Selection.Interior

.ColorIndex = 36

.Pattern = xlSolid

End With

End Sub

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

В команде выделения интервала объект Range смещен относительно активной ячейки – свойство Offset устанавливает смещение на один столбец. Процедура Макрос2 окрасит интервал из двух столбцов и пяти строк, начинающийся в соседнем по отношению к активной ячейке столбце.

Важно

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

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

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