Поиск…


Как записать макрос

Самый простой способ записи макроса - кнопка в левом нижнем углу Excel выглядит следующим образом: Начать запись Marco Button

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

Всплывающее окно для записи макроса

Если вы хотите, чтобы ярлык, назначенный вашему макросу для быстрого использования, выберите письмо, которое вы запомните, чтобы вы могли быстро и легко использовать макрос снова и снова.

Вы можете сохранить макрос в «Эта книга», «Новая рабочая книга» или «Личная книга макросов». Если вы хотите, чтобы макрос, который вы собираетесь записывать, был доступен только в текущей книге, выберите «This Workbook». Если вы хотите, чтобы он был сохранен в совершенно новой книге, выберите «Новая рабочая книга». И если вы хотите, чтобы макрос был доступен для любой открытой книги, выберите «Personal Macro Workbook».

После заполнения этого всплывающего окна нажмите «ОК».

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

Остановить запись макроса

Теперь вы можете перейти на вкладку «Разработчик» и открыть Visual Basic. (или используйте Alt + F11)

Теперь у вас будет новый модуль в папке «Модули». Новые модули

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

Я сделал простую копию и вставку:

Sub Macro1()
'
' Macro1 Macro
'

'
    Selection.Copy
    Range("A12").Select
    ActiveSheet.Paste
End Sub

Если вы не хотите, чтобы он всегда вставлялся в «A12», вы можете использовать Relative References, установив флажок «Использовать относительные ссылки» на вкладке «Разработчик»: Относительные ссылки

Следуя тем же шагам, что и раньше, теперь включите Макро:

Sub Macro2()
'
' Macro2 Macro
'

'
    Selection.Copy
    ActiveCell.Offset(11, 0).Range("A1").Select
    ActiveSheet.Paste
End Sub

Все еще копируя значение из «A1» в ячейку 11 строк вниз, но теперь вы можете выполнить один и тот же макрос с любой начальной ячейкой, а значение из этой ячейки будет скопировано в ячейку 11 строк вниз.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow