excel-vba
Как записать макрос
Поиск…
Как записать макрос
Самый простой способ записи макроса - кнопка в левом нижнем углу Excel выглядит следующим образом:
Когда вы нажмете на это, вы получите всплывающее окно с просьбой назвать макрос и решить, хотите ли вы иметь комбинацию клавиш. Кроме того, спрашивает, где хранить макрос и описание. Вы можете выбрать любое имя, которое вам нужно, не допускается использование пробелов.
Если вы хотите, чтобы ярлык, назначенный вашему макросу для быстрого использования, выберите письмо, которое вы запомните, чтобы вы могли быстро и легко использовать макрос снова и снова.
Вы можете сохранить макрос в «Эта книга», «Новая рабочая книга» или «Личная книга макросов». Если вы хотите, чтобы макрос, который вы собираетесь записывать, был доступен только в текущей книге, выберите «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 строк вниз.