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 закрашивает ячейки интервала B1:C5 желтым цветом (
рис.
1.8).Рис.
1.8.
Процедура Макрос1 записана с абсолютными ссылкамиВыделение интервала B1:C5 записано с абсолютными ссылками. При повторном выполнении процедуры снова будет выделен тот же интервал B1:C5, независимо от того, какая ячейка будет активной перед запуском процедуры.
- Процедура Макрос2 желтым цветом закрашивает интервал ячеек, смещенный относительно активной ячейки.
Рис.
1.9.
Процедура Макрос2 записана с относительными ссылкамиВ команде выделения интервала объект Range смещен относительно активной ячейки — свойство Offset устанавливает смещение на один столбец. Процедура Макрос2 окрасит интервал из двух столбцов и пяти строк, начинающийся в соседнем по отношению к активной ячейке столбце.
Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
We have two options to refer a cell in excel VBA Absolute references and Relative references. Default Excel records macro in Absolute mode.
In this article, we learn about absolute references in excel VBA. We record a macro to type some text in cells B2:B4. Macro always types the text in the cells B2:B4 irrespective of the active cell.
Implementation:
Follow the below steps to implement Absolute references in excel macros:
Step 1: Open Excel and Select Cell “A1”.
Step 2: Go to “Developer” Tab >> Click “Record Macro”.
Step 3: Enter the Macro name “absoluteReference” and Press “OK”
Step 4: Type “Australia” in cell B2.
Step 5: Type “Brazil” in cell B3.
Step 6: Type “Mexico” in cell B4.
Step 7: Select cell B5 and Press “Stop Recording”.
VBA Code (Recorded):
Sub absoluteReference() Range("B2").Select ActiveCell.FormulaR1C1 = "Australia" Range("B3").Select ActiveCell.FormulaR1C1 = "Brazil" Range("B4").Select ActiveCell.FormulaR1C1 = "Mexico" Range("B5").Select End Sub
Step 8: You just delete the contents in cells B2:B4.
Step 9: Go to View >> Macros >> View Macros – to popup Macro dialog box [keyboard shortcut – Alt+F8].
Step 10: Select Macro from the list (eg. absoluteReference) and Press “Run”.
Output:
Like Article
Save Article
Макросы Excel могут быть записаны с абсолютными или относительными ссылками. Макрос, записанный с абсолютными ссылками, помещает записанные шаги точно в ячейки, где он был записан, независимо от активной ячейки. С другой стороны, макрос, записанный с относительными ссылками, может выполнять записанные задачи в разных частях рабочего листа.
Вы узнаете об абсолютных ссылках на макрос в этой главе. Вы узнаете об относительных ссылках в следующей главе.
Предположим, что вы должны подавать отчет о работе вашей команды в конце каждого дня в следующем формате:
Теперь отчет должен быть помещен в ячейку B2 и должен быть в заданном формате.
Образец, заполненный в отчете, будет таким, как показано ниже –
За исключением данных в следующих ячейках, информация является постоянной для каждого отчета, который вы генерируете для проекта.
- C3 – Отчет за дату.
- C13 – Количество задач, выполненных сегодня.
- C14 – Общее количество выполненных задач.
- C15 -% работа выполнена.
Из них также в C3 (Отчет за дату) вы можете поместить функцию Excel = TODAY (), которая помещает дату вашего отчета без вашего вмешательства. Кроме того, в ячейке C15 вы можете использовать формулу C14 / C12 и отформатировать ячейку C15 в процентах, чтобы рассчитать% Work Complete для вас в Excel.
Это оставляет вам только две ячейки – C13 и C14, которые вы должны заполнять каждый день. Следовательно, было бы идеально иметь информацию для остальных ячеек каждый раз, когда вам нужно создать отчет. Это экономит ваше время, и вы можете выполнять обычные действия по составлению отчетов всего за несколько минут.
Теперь предположим, что вы должны отправить такие отчеты для трех проектов. Вы можете вообразить время, которое вы можете сэкономить и заняться более сложной работой в течение дня и, конечно, получить похвалы от вашего руководства.
Этого можно добиться, записав макрос для каждого проекта и выполняя их ежедневно, чтобы создать необходимые отчеты всего за несколько минут. Однако каждый раз, когда вы запускаете макрос, отчет должен появляться на рабочем листе, как указано выше, независимо от активной ячейки. Для этого вы должны использовать абсолютные ссылки.
Обеспечение Абсолютных Ссылок
Чтобы записать макрос с абсолютными ссылками, вы должны убедиться, что макрос записывается, начиная с ячейки, где должны начинаться шаги. Это означает, что в случае примера, приведенного в предыдущем разделе, вам нужно сделать следующее:
- Начните запись макроса.
- Создайте новый лист.
- Щелкните в любой ячейке, кроме B2, на новом листе.
- Нажмите в ячейке B2.
- Продолжить запись макроса.
Это создаст новый лист для каждого нового отчета и будет помещать формат отчета в ячейку B2 при каждом запуске макроса.
Примечание . Первые три шага, приведенные выше, очень важны.
-
Если вы не создаете новый рабочий лист, при запуске макроса он помещает все, что вы записали, на один и тот же рабочий лист в одно и то же место. Это не то, что вы хотите. Вы должны иметь каждый отчет на отдельном листе.
-
Если вы не нажмете другую ячейку в начале записи, даже если активная ячейка – B2, Excel поместит записанные шаги в активную ячейку. Когда вы запустите макрос, он поместит записанный формат отчета в любую часть рабочего листа на основе активной ячейки. Явно щелкая в ячейке, отличной от B2, а затем в ячейке B2, вы говорите рекордеру всегда размещать ваши макроэтапы в ячейке B2.
Если вы не создаете новый рабочий лист, при запуске макроса он помещает все, что вы записали, на один и тот же рабочий лист в одно и то же место. Это не то, что вы хотите. Вы должны иметь каждый отчет на отдельном листе.
Если вы не нажмете другую ячейку в начале записи, даже если активная ячейка – B2, Excel поместит записанные шаги в активную ячейку. Когда вы запустите макрос, он поместит записанный формат отчета в любую часть рабочего листа на основе активной ячейки. Явно щелкая в ячейке, отличной от B2, а затем в ячейке B2, вы говорите рекордеру всегда размещать ваши макроэтапы в ячейке B2.
Запись макроса
Вы можете начать запись макроса с помощью команды « Запись макроса» на ленте на вкладке «ПРОСМОТР» → «Макросы». Вы также можете нажать кнопку « Начать запись макроса» в левой части панели задач Excel.
-
Начните запись макроса. Откроется диалоговое окно « Запись макроса ».
-
Дайте осмысленное имя, чтобы идентифицировать макрос как отчет о конкретном проекте.
-
Выберите «Эта книга» в разделе « Макрос магазина» , поскольку отчеты будут создаваться только из этой конкретной книги.
-
Дайте описание вашему макросу и нажмите ОК.
Начните запись макроса. Откроется диалоговое окно « Запись макроса ».
Дайте осмысленное имя, чтобы идентифицировать макрос как отчет о конкретном проекте.
Выберите «Эта книга» в разделе « Макрос магазина» , поскольку отчеты будут создаваться только из этой конкретной книги.
Дайте описание вашему макросу и нажмите ОК.
Ваш макрос начинает запись.
-
Создайте новый лист. Это гарантирует, что ваш новый отчет будет на новом листе.
-
Щелкните в любой ячейке, кроме B2, на новом листе.
-
Нажмите в ячейке B2. Это гарантирует, что макрос всегда помещает ваши записанные шаги в B2.
-
Создайте формат для отчета.
-
Заполните статическую информацию для отчета по проекту.
-
Поместите = СЕГОДНЯ () в C3 и = C14 / C12 в ячейку C15.
-
Отформатируйте ячейки с датами.
Создайте новый лист. Это гарантирует, что ваш новый отчет будет на новом листе.
Щелкните в любой ячейке, кроме B2, на новом листе.
Нажмите в ячейке B2. Это гарантирует, что макрос всегда помещает ваши записанные шаги в B2.
Создайте формат для отчета.
Заполните статическую информацию для отчета по проекту.
Поместите = СЕГОДНЯ () в C3 и = C14 / C12 в ячейку C15.
Отформатируйте ячейки с датами.
Прекратите запись макроса.
Остановить запись макроса можно либо с помощью команды « Остановить запись» на ленте на вкладке «ПРОСМОТР» → «Макросы», либо нажав кнопку «Остановить запись макроса», расположенную в левой части панели задач Excel.
Макрос вашего отчета о проекте готов. Сохраните книгу как макрокоманду (с расширением .xlsm).
Запуск макроса
Вы можете создать любое количество отчетов за несколько секунд, просто запустив макрос.
- Нажмите кнопку VIEW на ленте.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка. Откроется диалоговое окно «Макрос».
- Щелкните макрос Report_ProjectXYZ.
- Нажмите кнопку «Выполнить».
В вашей книге будет создан новый лист, а в ячейке B2 будет создан трафарет отчета.
Содержание
- Range.Address property (Excel)
- Syntax
- Parameters
- Remarks
- Example
- Support and feedback
- Свойство Range.Address (Excel)
- Синтаксис
- Параметры
- Примечания
- Пример
- Поддержка и обратная связь
- Макросы Excel – абсолютные ссылки
- Обеспечение Абсолютных Ссылок
- Запись макроса
- Запуск макроса
- Использование макрорекордера. Абсолютные и относительные ссылки
- 1.2 Абсолютные и относительные ссылки
- Запись абсолютных и относительных ссылок в формулах на рабочем листе
- Запись абсолютных и относительных ссылок в процедурах VBA
Range.Address property (Excel)
Returns a String value that represents the range reference in the language of the macro.
Syntax
expression.Address (RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
expression A variable that represents a Range object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
RowAbsolute | Optional | Variant | True to return the row part of the reference as an absolute reference. The default value is True. |
ColumnAbsolute | Optional | Variant | True to return the column part of the reference as an absolute reference. The default value is True. |
ReferenceStyle | Optional | XlReferenceStyle | The reference style. The default value is xlA1. |
External | Optional | Variant | True to return an external reference. False to return a local reference. The default value is False. |
RelativeTo | Optional | Variant | If RowAbsolute and ColumnAbsolute are False, and ReferenceStyle is xlR1C1, you must include a starting point for the relative reference. This argument is a Range object that defines the starting point. |
NOTE: Testing with Excel VBA 7.1 shows that an explicit starting point is not mandatory. There appears to be a default reference of $A$1.
If the reference contains more than one cell, RowAbsolute and ColumnAbsolute apply to all rows and columns.
Example
The following example displays four different representations of the same cell address on Sheet1. The comments in the example are the addresses that will be displayed in the message boxes.
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Источник
Свойство Range.Address (Excel)
Возвращает строковое значение, представляющее ссылку на диапазон на языке макроса.
Синтаксис
выражение.Адрес (RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
выражение: переменная, представляющая объект Range.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
RowAbsolute | Необязательный | Variant | Значение True, чтобы возвратить часть строки ссылки в качестве абсолютной ссылки. Значение по умолчанию — True. |
ColumnAbsolute | Необязательный | Variant | Значение True, чтобы возвратить часть столбца ссылки в качестве абсолютной ссылки. Значение по умолчанию — True. |
ReferenceStyle | Необязательный | XlReferenceStyle | Стиль ссылки. Значение по умолчанию — xlA1. |
External | Необязательный | Variant | Значение True, чтобы вернуть внешнюю ссылку. Значение False, чтобы вернуть локальную ссылку. Значение по умолчанию — False. |
RelativeTo | Необязательный | Variant | Если RowAbsolute и ColumnAbsolute имеют значение False, а ReferenceStyle — xlR1C1, необходимо включить начальную точку для относительной ссылки. Этот аргумент является объектом Range, определяющим начальную точку. |
ПРИМЕЧАНИЕ. Тестирование с помощью Excel VBA 7.1 показывает, что явная начальная точка необязательна. По умолчанию отображается ссылка на $A$1.
Примечания
Если ссылка содержит более одной ячейки, аргументы RowAbsolute и ColumnAbsolute применяются ко всем строкам и столбцам.
Пример
В следующем примере показаны четыре различных представления одного адреса ячейки на листе Sheet1. В качестве комментариев в примере используются адреса, которые будут отображаться в окнах сообщений.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Макросы Excel – абсолютные ссылки
Макросы Excel могут быть записаны с абсолютными или относительными ссылками. Макрос, записанный с абсолютными ссылками, помещает записанные шаги точно в ячейки, где он был записан, независимо от активной ячейки. С другой стороны, макрос, записанный с относительными ссылками, может выполнять записанные задачи в разных частях рабочего листа.
Вы узнаете об абсолютных ссылках на макрос в этой главе. Вы узнаете об относительных ссылках в следующей главе.
Предположим, что вы должны подавать отчет о работе вашей команды в конце каждого дня в следующем формате:
Теперь отчет должен быть помещен в ячейку B2 и должен быть в заданном формате.
Образец, заполненный в отчете, будет таким, как показано ниже –
За исключением данных в следующих ячейках, информация является постоянной для каждого отчета, который вы генерируете для проекта.
- C3 – Отчет за дату.
- C13 – Количество задач, выполненных сегодня.
- C14 – Общее количество выполненных задач.
- C15 -% работа выполнена.
Из них также в C3 (Отчет за дату) вы можете поместить функцию Excel = TODAY (), которая помещает дату вашего отчета без вашего вмешательства. Кроме того, в ячейке C15 вы можете использовать формулу C14 / C12 и отформатировать ячейку C15 в процентах, чтобы рассчитать% Work Complete для вас в Excel.
Это оставляет вам только две ячейки – C13 и C14, которые вы должны заполнять каждый день. Следовательно, было бы идеально иметь информацию для остальных ячеек каждый раз, когда вам нужно создать отчет. Это экономит ваше время, и вы можете выполнять обычные действия по составлению отчетов всего за несколько минут.
Теперь предположим, что вы должны отправить такие отчеты для трех проектов. Вы можете вообразить время, которое вы можете сэкономить и заняться более сложной работой в течение дня и, конечно, получить похвалы от вашего руководства.
Этого можно добиться, записав макрос для каждого проекта и выполняя их ежедневно, чтобы создать необходимые отчеты всего за несколько минут. Однако каждый раз, когда вы запускаете макрос, отчет должен появляться на рабочем листе, как указано выше, независимо от активной ячейки. Для этого вы должны использовать абсолютные ссылки.
Обеспечение Абсолютных Ссылок
Чтобы записать макрос с абсолютными ссылками, вы должны убедиться, что макрос записывается, начиная с ячейки, где должны начинаться шаги. Это означает, что в случае примера, приведенного в предыдущем разделе, вам нужно сделать следующее:
- Начните запись макроса.
- Создайте новый лист.
- Щелкните в любой ячейке, кроме B2, на новом листе.
- Нажмите в ячейке B2.
- Продолжить запись макроса.
Это создаст новый лист для каждого нового отчета и будет помещать формат отчета в ячейку B2 при каждом запуске макроса.
Примечание . Первые три шага, приведенные выше, очень важны.
Если вы не создаете новый рабочий лист, при запуске макроса он помещает все, что вы записали, на один и тот же рабочий лист в одно и то же место. Это не то, что вы хотите. Вы должны иметь каждый отчет на отдельном листе.
Если вы не нажмете другую ячейку в начале записи, даже если активная ячейка – B2, Excel поместит записанные шаги в активную ячейку. Когда вы запустите макрос, он поместит записанный формат отчета в любую часть рабочего листа на основе активной ячейки. Явно щелкая в ячейке, отличной от B2, а затем в ячейке B2, вы говорите рекордеру всегда размещать ваши макроэтапы в ячейке B2.
Если вы не создаете новый рабочий лист, при запуске макроса он помещает все, что вы записали, на один и тот же рабочий лист в одно и то же место. Это не то, что вы хотите. Вы должны иметь каждый отчет на отдельном листе.
Если вы не нажмете другую ячейку в начале записи, даже если активная ячейка – B2, Excel поместит записанные шаги в активную ячейку. Когда вы запустите макрос, он поместит записанный формат отчета в любую часть рабочего листа на основе активной ячейки. Явно щелкая в ячейке, отличной от B2, а затем в ячейке B2, вы говорите рекордеру всегда размещать ваши макроэтапы в ячейке B2.
Запись макроса
Вы можете начать запись макроса с помощью команды « Запись макроса» на ленте на вкладке «ПРОСМОТР» → «Макросы». Вы также можете нажать кнопку « Начать запись макроса» в левой части панели задач Excel.
Начните запись макроса. Откроется диалоговое окно « Запись макроса ».
Дайте осмысленное имя, чтобы идентифицировать макрос как отчет о конкретном проекте.
Выберите «Эта книга» в разделе « Макрос магазина» , поскольку отчеты будут создаваться только из этой конкретной книги.
Дайте описание вашему макросу и нажмите ОК.
Начните запись макроса. Откроется диалоговое окно « Запись макроса ».
Дайте осмысленное имя, чтобы идентифицировать макрос как отчет о конкретном проекте.
Выберите «Эта книга» в разделе « Макрос магазина» , поскольку отчеты будут создаваться только из этой конкретной книги.
Дайте описание вашему макросу и нажмите ОК.
Ваш макрос начинает запись.
Создайте новый лист. Это гарантирует, что ваш новый отчет будет на новом листе.
Щелкните в любой ячейке, кроме B2, на новом листе.
Нажмите в ячейке B2. Это гарантирует, что макрос всегда помещает ваши записанные шаги в B2.
Создайте формат для отчета.
Заполните статическую информацию для отчета по проекту.
Поместите = СЕГОДНЯ () в C3 и = C14 / C12 в ячейку C15.
Отформатируйте ячейки с датами.
Создайте новый лист. Это гарантирует, что ваш новый отчет будет на новом листе.
Щелкните в любой ячейке, кроме B2, на новом листе.
Нажмите в ячейке B2. Это гарантирует, что макрос всегда помещает ваши записанные шаги в B2.
Создайте формат для отчета.
Заполните статическую информацию для отчета по проекту.
Поместите = СЕГОДНЯ () в C3 и = C14 / C12 в ячейку C15.
Отформатируйте ячейки с датами.
Прекратите запись макроса.
Остановить запись макроса можно либо с помощью команды « Остановить запись» на ленте на вкладке «ПРОСМОТР» → «Макросы», либо нажав кнопку «Остановить запись макроса», расположенную в левой части панели задач Excel.
Макрос вашего отчета о проекте готов. Сохраните книгу как макрокоманду (с расширением .xlsm).
Запуск макроса
Вы можете создать любое количество отчетов за несколько секунд, просто запустив макрос.
- Нажмите кнопку VIEW на ленте.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка. Откроется диалоговое окно «Макрос».
- Щелкните макрос Report_ProjectXYZ.
- Нажмите кнопку «Выполнить».
В вашей книге будет создан новый лист, а в ячейке B2 будет создан трафарет отчета.
Источник
Использование макрорекордера. Абсолютные и относительные ссылки
1.2 Абсолютные и относительные ссылки
Запись абсолютных и относительных ссылок в формулах на рабочем листе
Например, если активна ячейка A4, то ссылку на ячейку D3 можно задать как D3 (стиль A1 ) или R[-1]C[3] (стиль R1C1 ).
При записи формулы в стиле A1 признаком абсолютной ссылки является знак доллара ($) перед адресом строки и/или столбца. В стиле R1C1 для задания абсолютной ссылки используются индексы ячейки. Например, на ячейку D3 указывает абсолютная ссылка $D$3 в стиле A1 и абсолютная ссылка R3C4 в стиле R1C1.
Запись абсолютных и относительных ссылок в процедурах VBA
В процедурах, создаваемых при помощи макрорекордера , абсолютные и относительные ссылки записываются в стиле R1C1.
По умолчанию после запуска макрорекодера кнопкаотжата, что означает, что при записи процедур используются абсолютные ссылки.
Команда вычисления размера вклада в ячейке B13 с использованием абсолютных ссылок (набор адреса ячейки со знаками $ во время записи макроса ) будет выглядеть так:
Можно установить использование относительных ссылок при записи процедур Для этого после запуска макрорекордера нажмите кнопку Относительная ссылкана панели инструментов Остановить запись (см. рис. 1.2). Кнопка будет изображена на оранжевом фоне. Относительные ссылки будут использоваться до конца текущего сеанса работы в MS Excel или до повторного нажатия кнопки Относительная ссылка.
Другой способ задания относительных ссылок — использование свойства Offset объекта Range.
Источник
Excel macros can be recorded either with absolute references or relative references. A macro recorded with absolute references places the recorded steps exactly in the cells where it was recorded, irrespective of the active cell. On the other hand, a macro recorded with relative references can perform the recorded tasks at different parts on the worksheet.
You will learn about absolute references for macro in this chapter. You will learn about relative references in the next chapter.
Suppose you have to submit a report about your team’s work at the end of every day in the following format −
Now, the report should be placed in the cell B2 and should be in the given format.
A sample filled in report will be as shown below −
Except for the data in the following cells, the information is constant for every report that you generate for the project.
- C3 – Report for Date.
- C13 – No. of Tasks Completed Today.
- C14 – Total No. of Tasks Completed.
- C15 – % Work Complete.
Of these also, in C3 (Report for Date) you can place the Excel function = TODAY () that places the date of your report without your intervention. Further, in cell C15, you can have the formula C14/C12 and format the cell C15 as percentage to have the % Work Complete calculated by Excel for you.
This leaves you with only two cells – C13 and C14 that need to be filled in by you every day. Hence, it would be ideal to have information for the rest of the cells, every time you have to create the report. This saves time for you and you can do the mundane activity of reporting in just few minutes.
Now, suppose you have to send such reports for three projects. You can imagine the time you can save and take up more challenging work for the day and of course get the accolades from your management.
You can achieve this by recording a macro per project and running them on a day-to-day basis to generate the required reports in a matter of just few minutes. However, every time you run the macro, the report should appear on the worksheet as given above, irrespective of the active cell. For this, you have to use absolute references.
Ensuring Absolute References
To record a macro with absolute references, you have to ensure that the macro is being recorded starting from the cell where the steps have to start. This means, in the case of the example given in the previous section, you need to do the following −
- Start recording the macro.
- Create a new worksheet.
- Click in any cell other than B2 in the new worksheet.
- Click in the cell B2.
- Continue recording the macro.
This will create a new worksheet for every new report and get the report format placed in the cell B2 every time you run the macro.
Note − The first three steps given above are essential.
-
If you do not create a new worksheet, when you run the macro, it places whatever you recorded on the same worksheet at the same place. This is not what you want. You need to have every report on a different worksheet.
-
If you do not click in a different cell at the beginning of the recording, even if the active cell is B2, Excel places the recorded steps in the active cell. When you run the macro, it will place the recorded report format at any part of the worksheet based on the active cell. By explicitly clicking in a cell other than B2 and then the the cell B2, you are telling the recorder to always place your macro steps in the cell B2.
Recording a Macro
You can start recording the macro with the Record Macro command on the Ribbon under the VIEW tab → Macros. You can also click the Start Recording Macro button present on left side of the Excel task bar.
-
Start recording the macro. The Record Macro dialog box appears.
-
Give a meaningful name to identify the macro as a report of a particular project.
-
Select This Workbook under Store macro in, as you will produce reports from this specific workbook only.
-
Give a description to your macro and click OK.
Your macro starts recording.
-
Create a new worksheet. This ensures your new report will be on a new worksheet.
-
Click in any cell other than B2 in the new worksheet.
-
Click in the cell B2. This ensures that the macro places your recorded steps in B2 always.
-
Create the format for the report.
-
Fill in the static information for the project report.
-
Place = TODAY () in C3 and = C14/C12 in the cell C15.
-
Format the cells with dates.
Stop recording the macro.
You can stop recording the macro either with the Stop Recording command on the Ribbon under VIEW tab → Macros or by clicking the Stop Recording Macro button present on left side of the Excel task bar.
Your Project Report macro is ready. Save the workbook as a macro-enabled workbook (with .xlsm extension).
Running a Macro
You can generate any number of reports in a few seconds just by running the macro.
- Click the VIEW button on the Ribbon.
- Click Macros.
- Select View Macros from the dropdown list. The Macro dialog box appears.
- Click the macro Report_ProjectXYZ.
- Click the Run button.
A new worksheet will be created in your workbook, with the report stencil created in it in the cell B2.