Как запустить макрос при открытии файла Excel

Обновлено: 21.11.2024

Запуск макроса по прошествии определенного времени с момента открытия книги Excel. Это означает, что вы можете настроить этот макрос для запуска другого макроса после того, как рабочая книга Excel была открыта в течение 10 секунд, 25 минут, 1 часа и т. д. Это позволяет вам запускать макросы, чувствительные ко времени, в Excel, такие как предупреждения, основанные на времени, т.е. У вас осталось 15 минут на этот тест!" Сейчас этот макрос запускает другой макрос через 10 секунд после открытия книги Excel, содержащей этот макрос.

Этот макрос вызывает только другой макрос в Excel. Это означает, что у вас уже должен быть другой макрос, который вам нужен, чтобы этот макрос запускался с заданной продолжительностью времени. Кроме того, эта рабочая книга должна находиться в окне «Эта рабочая книга» для макросов, а не модуля. Чтобы этот макрос работал, вы должны сохранить и закрыть, а затем снова открыть книгу после того, как этот макрос был установлен в книге. Это связано с тем, что этот макрос запускается при открытии книги, в которой он содержится.

Этот макрос использует метод Application.OnTime в Excel. Чтобы изменить макрос под свои нужды, просто измените Name_of_Macro на имя макроса, который вы хотите запустить. Убедитесь, что имя точно такое же, и включите все требуемые параметры для другого макроса, если это необходимо.

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

Где установить макрос: ThisWorkbook

Макрос Excel для автоматического запуска макроса через несколько секунд, минут или часов после открытия книги Excel

Private Sub Workbook_Open()
'Запускает макрос через 10 секунд после открытия Excel

Application.OnTime Now + TimeValue("00:00:10"), "Name_of_Macro"

Курс Excel VBA — от новичка до эксперта

200+ видеоуроков 50+ часов обучения 200+ руководств Excel

С помощью этого онлайн-курса станьте мастером VBA и макросов в Excel и узнайте, как автоматизировать все свои задачи в Excel. (Опыт работы с VBA не требуется.)

Автоматически запускать макрос в определенное время — т. е. запускать макрос в 16:30 каждый день.
Макрос: автоматически запускать макрос Excel в определенное время. Это позволяет вам не беспокоиться a.

Запуск макроса в Excel с заданными интервалами
Учебное пособие: запуск макроса каждые 30 секунд, 1 минуту, 10 минут, 1 час и т. д.; этот метод позволяет т.

Запуск макроса, когда пользователь делает что-то в книге Excel
Учебное пособие: Как запустить макрос, когда пользователь делает что-то в книге Excel, например открывает.

Запуск макроса при изменении определенной ячейки в Excel
Учебник: Запуск макроса в Excel при изменении определенной ячейки; это также относится к ячейке внутри.

Запуск макроса, когда пользователь что-то делает на листе в Excel
Учебное пособие: Как запустить макрос, когда пользователь что-то делает на листе, начиная с выбора .

Автоматически запускать макрос при открытии рабочей книги
Учебное пособие: Как сделать так, чтобы макрос запускался автоматически после открытия рабочей книги и до всего остального.

  1. Выделите и скопируйте текст в сером поле выше.
  2. Откройте файл Microsoft Excel, в котором вы хотите использовать макрос.
  3. Нажмите «Alt + F11» — откроется редактор Visual Basic — работает для всех версий Excel. Или Чтобы узнать о других способах добраться, нажмите здесь.

    Для версий Excel до Excel 2007
    Выберите Инструменты > Макросы > Редактор Visual Basic


  1. Откройте меню в верхней части окна и нажмите "Вставить" > "Модуль".
  2. В окне редактора Visual Basic должно было открыться другое окно. В этом новом окне вставьте код макроса. Не забудьте вставить код под последней строкой всего, что находится в окне.
  3. Перейдите к шагу 8.

    1. Непосредственно под вашим файлом Excel с именем VBAProject (имя вашего файла здесь) щелкните значок папки Microsoft Excel Objects, чтобы открыть раскрывающийся список.
    2. Затем в нижней части появившегося списка дважды щелкните текст ThisWorkbook.
    3. Появится новое окно внутри окна редактора Visual Basic. В этом новом окне вставьте код макроса. Не забудьте вставить этот код под последней строкой любого другого кода, который уже находится в окне.
    4. Перейдите к шагу 8.

      1. Непосредственно под вашим файлом Excel с именем VBAProject (имя вашего файла здесь) щелкните значок папки Microsoft Excel Objects, чтобы открыть раскрывающийся список.
      2. В появившемся списке вы увидите все рабочие листы в этом файле Excel.Они будут перечислены как таковые: Лист1 (ЗДЕСЬ НАЗВАНИЕ ЛИСТА), а под ним будет Лист2 (ЗДЕСЬ НАЗВАНИЕ ЛИСТА). Выберите лист, на котором вы хотите запустить макрос, и дважды щелкните этот лист.
      3. Появится новое окно внутри окна редактора Visual Basic. В этом новом окне вставьте код макроса. Не забудьте вставить этот код под последней строкой любого другого кода, который уже находится в окне.
      4. Повторите шаги b и c для каждого листа, на котором должен работать макрос. Если макрос поместить на один лист, он не будет работать на других листах книги.
      5. Перейдите к шагу 8.

      Автоматически запускать макрос в определенное время — т. е. запускать макрос в 16:30 каждый день.
      Макрос: автоматически запускать макрос Excel в определенное время. Это позволяет вам не беспокоиться a.

      Запуск макроса в Excel с заданными интервалами
      Учебное пособие: запуск макроса каждые 30 секунд, 1 минуту, 10 минут, 1 час и т. д.; этот метод позволяет т.

      Запуск макроса, когда пользователь делает что-то в книге Excel
      Учебное пособие: Как запустить макрос, когда пользователь делает что-то в книге Excel, например открывает.

      Курс Excel VBA — от новичка до эксперта

      200+ видеоуроков
      50+ часов видео
      200+ руководств по Excel

      С помощью этого онлайн-курса станьте мастером VBA и макросов в Excel и узнайте, как автоматизировать все свои задачи в Excel. (Опыт работы с VBA не требуется.)

      Иногда вам может потребоваться автоматически запускать макрос при открытии книги Excel. Ниже приведены несколько случаев, когда вам необходимо запустить макрос при открытии книги Excel.

      Автоматически запускать макрос при открытии книги Excel — решение(я):

      Для этого можно использовать метод Workbook_Open() или Auto_Open().

      Автоматический запуск макроса — примеры случаев:

      Ниже приведен список ситуаций, когда нам нужно автоматически запускать макрос при открытии книги Excel.

      Показ приветственного сообщения пользователю

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

      Вывод:

      Инструкции:
      1. Открыть книгу Excel
      2. Нажмите клавиши ALT + F11, чтобы открыть редактор VBA.
      3. Дважды щелкните ThisWorkbook в Project Explorer.
      4. Скопируйте приведенный выше код и вставьте его в окно кода.
      5. Сохранить файл как книгу с поддержкой макросов
      6. Откройте книгу, чтобы протестировать ее, она автоматически запустит макрос. Вы должны увидеть окно сообщения, как показано выше.
      Использование метода Auto open для автоматического запуска макроса:

      Вы можете ВСТАВИТЬ новый модуль и поместить следующий код во вновь созданный модуль

      Инструкции:
      1. Открыть книгу Excel
      2. Нажмите клавиши ALT + F11, чтобы открыть редактор VBA.
      3. Вставить новый модуль из меню "Вставка"
      4. Скопируйте приведенный выше код и вставьте его в окно кода.
      5. Сохранить файл как книгу с поддержкой макросов
      6. Откройте книгу, чтобы протестировать ее, она автоматически запустит макрос. Вы должны увидеть окно сообщения, как показано выше.
      Запуск некоторых стартовых скриптов при открытии книги

      В следующем примере выполняется скрипт для подсчета количества рабочих листов в рабочей книге и вывода их списка на листе sheet1.

      Инструкции:
      1. Открыть книгу Excel
      2. Нажмите клавиши ALT + F11, чтобы открыть редактор VBA.
      3. Вставить новый модуль из меню "Вставка"
      4. Скопируйте приведенный выше код и вставьте его в окно кода.
      5. Сохранить файл как книгу с поддержкой макросов
      6. Откройте книгу, чтобы протестировать ее, она автоматически запустит макрос. Вы должны увидеть список имен листов в Sheet1
      Вы можете использовать следующий код для заполнения поля со списком или списка на листе

      В следующем примере показано, как заполнить регионы (Восток, Запад, Север, Юг) в поле со списком и поле со списком

      Инструкции:
      1. Открыть книгу Excel
      2. Вставьте поле со списком (элемент управления ActiveX с ленты разработчика) на лист Sheet1. И назовите поле со списком (щелкните его правой кнопкой мыши и измените имя в свойствах) на ComboBox1
      3. Вставьте список (элемент управления ActiveX с ленты разработчика) на лист Sheet1. И назовите поле списка (щелкните его правой кнопкой мыши и измените имя в свойствах) на Listbox1
      4. Нажмите клавиши ALT + F11, чтобы открыть редактор VBA.
      5. Дважды щелкните ThisWorkbook в Project Explorer.
      6. Скопируйте приведенный выше код и вставьте его в окно кода.
      7. Сохранить файл как книгу с поддержкой макросов
      8. Откройте книгу, чтобы протестировать ее, она автоматически запустит макрос.Вы должны увидеть, что поле со списком и поле со списком на листе Sheet1 заполнены элементами
      Вы можете использовать следующий код для активации листа или отображения пользовательской формы

      В следующем примере показано, как активировать лист (с именем «Главная») и отобразить пользовательскую форму (UserForm1). Этот код активирует рабочий лист «Главная», а затем отобразит UserForm1

      Инструкции:
      1. Открыть книгу Excel
      2. Нажмите клавиши ALT + F11, чтобы открыть редактор VBA.
      3. Вставьте пользовательскую форму из меню "Вставка" (UserForm1)
      4. Дважды щелкните ThisWorkbook в Project Explorer.
      5. Скопируйте приведенный выше код и вставьте его в окно кода.
      6. Сохранить файл как книгу с поддержкой макросов
      7. Откройте книгу, чтобы протестировать ее, она автоматически запустит макрос. Вы должны увидеть форму пользователя, которую вы создали
      Вы можете очистить определенные листы или диапазоны при открытии книги

      В следующем примере удаляются все рабочие листы в рабочей книге при ее открытии.

      Инструкции:
      1. Открыть книгу Excel
      2. Введите образцы данных в каждую книгу.
      3. Нажмите клавиши ALT + F11, чтобы открыть редактор VBA.
      4. Дважды щелкните ThisWorkbook в Project Explorer.
      5. Скопируйте приведенный выше код и вставьте его в окно кода.
      6. Сохранить файл как книгу с поддержкой макросов
      7. Откройте книгу, чтобы протестировать ее, она автоматически запустит макрос. Вы должны увидеть, что все рабочие листы очищены
      Вы можете скачать файл примера и посмотреть, как он работает.

      Обратите внимание: мы можем комментировать некоторый код, поскольку мы можем написать только одну процедуру auto_open() или Workbook_open().

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

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

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

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

      Что на этой странице

      1. Автоматический запуск макроса при открытии определенной книги

      1.1 Создание макроса

      Следующий макрос открывает книгу Book1.xlsx в папке c:\temp

      1.2 Где разместить код?

      Скопируйте приведенный выше код макроса и перейдите на вкладку "Разработчик" на ленте. Если он отсутствует, найдите в Интернете свою версию Excel и нажмите «Показать вкладку разработчика».

      Нажмите мышью на кнопку "Visual Basic", чтобы открыть редактор Visual Basic. Нажмите правой кнопкой мыши на книгу в окне Project Explorer.

      Нажмите мышью на "Вставить", а затем на "Модуль". Это действие добавит модуль кода в вашу книгу.

      Теперь вставьте приведенный выше код VBA в модуль кода.

      Вернуться в Excel.

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

      Перейдите на вкладку "Разработчик" и нажмите левой кнопкой мыши на кнопку "Макрос". Появится следующее диалоговое окно:

      Нажмите мышью на кнопку "Выполнить", и рабочая книга откроется.

      1.4 Где разместить код события?

      Нажмите Alt+F11, чтобы открыть редактор VB, или перейдите на вкладку «Разработчик» на ленте, нажмите левой кнопкой мыши на кнопку «Visual Basic». Дважды нажмите левой кнопкой мыши на «Эта рабочая книга», если вы не видите ее, разверните список, нажав левую кнопку мыши на знаке +.

      Вставьте следующий код события в модуль рабочей книги:

      Вернитесь в Excel. Сохраните книгу с расширением файла *.xlsm, это важно.

      Закройте книгу и снова откройте ее. Рабочая книга Book1.xlsx в папке c:\temp теперь открывается автоматически. (Если он существует..)

      2. Автоматически запускать макрос при выборе определенного рабочего листа

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

      Обратите внимание, помещайте обычные макросы в обычные модули.

      2.1 Код события рабочего листа

      Следующие шаги описывают, как сохранить код события на определенном листе.

      1. Нажмите правую кнопку мыши на вкладке рабочего листа, которую вы хотите отредактировать, она расположена в левом нижнем углу окна Excel.
      2. Появится всплывающее меню, см. изображение выше.
      3. Нажмите левой кнопкой мыши на «Просмотр кода», чтобы открыть соответствующий модуль рабочего листа в редакторе Visual Basic (VBE).
      4. Скопируйте код события ниже.
      5. Вставить в модуль рабочего листа.

      2.2 Код макроса

      Следующий код VBA представляет собой обычный макрос. он показывает окно сообщения, содержащее «Привет, мир!». Вот как вы храните обычные макросы:

      1. Нажмите клавиши ALT + F11, чтобы открыть редактор Visual Basic.
      2. Нажмите левую кнопку мыши на "Вставить" в верхнем меню, см. изображение ниже.
      3. Нажмите левую кнопку мыши на «Модуле», чтобы создать новый модуль, они расположены в папке «Модули», как показано на изображении ниже.
      4. Скопируйте код ниже.
      5. Вставить в модуль.
      6. Выйти из редактора Visual Basic.

      3. Запускать макрос, когда выбрана определенная ячейка

      На изображении выше показан макрос, который запускается при выборе определенной ячейки на определенном листе. Пример, показанный на изображении выше, показывает окно сообщения, содержащее текст «Выбрана ячейка B2», когда выбрана ячейка B2.

      3.1 Код листа

      Следующие шаги описывают, как сохранить код события на определенном листе.

      3.2 Код макроса

      Следующий код VBA представляет собой обычный макрос. он показывает окно сообщения, содержащее «Выбрана ячейка B2». Вот как вы храните обычные макросы:

      1. Нажмите клавиши ALT + F11, чтобы открыть редактор Visual Basic.
      2. Нажмите левую кнопку мыши на "Вставить" в верхнем меню, см. изображение ниже.
      3. Нажмите левую кнопку мыши на «Модуле», чтобы создать новый модуль, они расположены в папке «Модули», как показано на изображении ниже.
      4. Скопируйте код ниже.
      5. Вставить в модуль.
      6. Выйти из редактора Visual Basic.

      Обратите внимание: сохраните книгу с расширением файла *.xlsm (книга с поддержкой макросов), чтобы сохранить прикрепленный код.

      Получить файл Excel


      Извлечь уникальный список с учетом регистра.xlsx

      Еженедельный блог EMAIL

      [newsletter_signup_form Я Оскар и здесь, чтобы помочь вам.

      Не стесняйтесь оставлять комментарии и задавать вопросы по Excel.

      Подпишитесь на мою рассылку, чтобы не пропустить новые статьи блога.

      Статьи по теме

      В этой статье демонстрируется макрос, который копирует значения между листами. Я использую книгу шаблонов счетов. Этот макрос копирует […]

      В этом руководстве показано, как составить список файлов Excel в определенной папке и создать рядом флажки с помощью VBA. […]

      В этом посте я покажу, как создать новый лист для каждого самолета с помощью vba. […]

      Оставить ответ

      Как комментировать

      Как добавить формулу в комментарий
      Вставьте сюда формулу.

      Преобразование знаков меньше и больше
      Использование символов HTML вместо знаков меньше и больше.
      становится >

      Как добавить код VBA в комментарий
      [vb 1="vbnet" language=","]
      Поместите здесь код VBA.
      [/vb]

      Я хочу запускать макрос при открытии электронной таблицы. Вы можете помочь?

      Факты об Excel

      Начните с A1 и выберите A9999 при написании формулы, вы больше не увидите A1. Нажмите Ctrl+Backspace, чтобы отобразить активную ячейку.

      фантом1975

      MrExcel MVP

      ДОБРО ПОЖАЛОВАТЬ НА СОВЕТ!

      Очень легко! Откройте редактор Visual Basic, нажав ALT + F11. Затем щелкните папку с левой стороны под названием MICROSOFT EXCEL OBJECTS. Теперь щелкните модуль ThisWorkbook. Введите этот код справа:

      Private Sub Workbook_Open()
      'Введите здесь свой макрос
      End Sub

      ДжеймиДеВри

      Новый участник
      <р>1. Перейдите в редактор Visual Basic, нажав клавиши Alt+F11.

      <р>2. В Project Explorer дважды щелкните объект ThisWorkbook

      <р>3. Это запустит для вас окно событий. В верхней части окна нового кода вы увидите слово «Общие». Выберите раскрывающийся список, где вы видите общие, и выберите «Рабочая книга».

      <р>4. Вы заметите, что Excel VBA предполагает событие Open. Это означает, что любой код, который вы вставите в эту процедуру, будет выполняться автоматически при открытии книги.


      Private Sub Workbook_Open()
      MsgBox "скажи привет"
      End Sub

      ама150

      Новый участник

      Спасибо за помощь!

      вогаш

      Новый участник
      <р>1. Перейдите в редактор Visual Basic, нажав клавиши Alt+F11.

      <р>2. В Project Explorer дважды щелкните объект ThisWorkbook

      <р>3. Это запустит для вас окно событий. В верхней части окна нового кода вы увидите слово «Общие». Выберите раскрывающийся список, где вы видите общие, и выберите «Рабочая книга».

      <р>4. Вы заметите, что Excel VBA предполагает событие Open. Это означает, что любой код, который вы вставите в эту процедуру, будет выполняться автоматически при открытии книги.


      Private Sub Workbook_Open()
      MsgBox "скажи привет"
      End Sub

      левсим

      Новый участник

      Фактически Workbook_Open() был заменен на Autpen().

      ДжоВульф

      Новый участник

      Как редактировать файл макроса, не запуская его, если вы настроили его запуск при открытии? Я создал макрос, который будет автоматически отправлять файлы по электронной почте, но мне нужно отредактировать его, не отправляя электронные письма.

      левсим

      Новый участник

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

      гровкиллен

      Новый участник

      Как редактировать файл макроса, не запуская его, если вы настроили его запуск при открытии? Я создал макрос, который будет автоматически отправлять файлы по электронной почте, но мне нужно отредактировать его, не отправляя электронные письма.

      Я делаю это, просто проверяя имя файла:

      Sub Autpen()
      CheckNameWorkbook = ActiveWorkbook.Name
      FileNameToExecute
      If CheckNameWorkbook = FileNameToExecute & "m" Then
      . Ваш код здесь
      End If

      Если я удалю "m" в типе файла "xlsm", мой макрос не будет выполняться при открытии. Если я снова добавлю "m", макрос будет работать, как предполагалось, при следующем открытии.

      Анубхав_г

      Новый участник

      Я пытался сделать то, что упомянуто выше, но Excel показывает какую-то ошибку, вы можете разобраться и помочь мне?!

      Private Sub Workbook_Open()
      Явный параметр
      Public dTime As Date


      Sub ValueStore()
      Dim dTime As Date
      Range("I7:I13").Value = Range("C7:C13").Value
      Range( "J7:J13").Значение = Диапазон("G7:G13").Значение
      Диапазон("K7:K13").Значение = Диапазон("H7:H13").Значение
      Call Hello
      Конец подписки


      Sub Hello()
      dTime = TimeValue("01:41:00")
      Приложение.OnTime dTime, "ValueStore", Schedule:=True
      End Sub


      Sub Bye()
      При ошибке возобновить следующий
      Application.OnTime dTime, "ValueStore", Schedule:=False
      End Sub
      End Sub

      Этот код не работает, в чем может быть ошибка?

      <р>1. Перейдите в редактор Visual Basic, нажав клавиши Alt+F11.

      <р>2. В Project Explorer дважды щелкните объект ThisWorkbook

      <р>3. Это запустит для вас окно событий. В верхней части окна нового кода вы увидите слово «Общие». Выберите раскрывающийся список, где вы видите общие, и выберите «Рабочая книга».

      <р>4. Вы заметите, что Excel VBA предполагает событие Open. Это означает, что любой код, который вы вставите в эту процедуру, будет выполняться автоматически при открытии книги.


      Private Sub Workbook_Open()
      MsgBox "скажи привет"
      End Sub

      Читайте также: