Как остановить макрос в excel - IT Новости из мира ПК
Remkomplekty.ru

IT Новости из мира ПК
43 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как остановить макрос в excel

Как выполнить (запустить) макрос в «Excel»

Теперь наступило время рассказать, как активировать выполнение уже записанного макроса (произвести запуск макроса) в файле «Excel».

Подготовка к запуску макроса.

Для начала нужно включить вкладку разработчика на панели быстрого доступа. По умолчанию она отключены (скрыта), но именно из нее и происходит управление макросами.

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

  • Необходимо нажать на вкладку «Файл».
  • Далее «Параметры».
  • Настройка ленты.
  • В разделе «Настройка ленты» установить флажок (галочку) напротив пункта «Разработчик».

Настройка ленты. Разработчик

  • Нажать кнопку «Ok».
  • Запуск макроса.

    • Войти на вкладку «Разработчик» панели инструментов. Панель разработчика

    • Кликнуть по пиктограмме «Макросы».
    • Выбрать нужный макрос, выделив его название левой кнопкой мыши.

    Выполнение записанного макроса

    • Нажать кнопку «Выполнить».

    Что делать, если макрос не запускается.

    Одной из причин отсутствия результата при запуске готового макроса является встроенная защита «Excel», которая определяет макросы, как потенциально опасные компоненты и блокирует (отключает) их.

    Рассмотрим, как снять блокировку выполнения макроса в «Excel».

    Необходимо:
    • Войти в меню «Файл».
    • Далее «Параметры».
    • В открывшемся окне выбрать вкладку «Центр управления безопасностью».
    • Кликнуть по кнопке «Параметры центра управления безопасностью»

    Центр управления безопасностью

    • Выбрать вкладку «Параметры макросов»

    Включить все макросы

    • Установить флажок напротив пункта «Включить все макросы…» и нажать «ОК».

    Теперь после запуска макросы будут выполняться без проблем.

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

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

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

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

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

    Метод 1: Записываем макрос в автоматическом режиме

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

    Узнать, как это можно сделать, можно в нашей статье – “Как включать и отключать макросы в Excel”.

    После того, как макросы включены, можно перейти к нашей основной задаче.

    1. Переключаемся во вкладку “Разработчик”. В группе инструментов “Код” щелкаем по значку “Записать макрос”.
    2. На экране появится окошко, в котором мы можем выполнить настройки записи. Здесь указывается:
      • имя макроса – любое, но должно начинаться с буквы (не с цифры), не допускаются пробелы.
      • комбинация клавиш, которая будет использоваться для запуска макроса. Обязательной является Ctrl, а вторую мы можем назначить в специальном поле. Допустим, пусть это будет клавиша “r”. Если нужно использовать заглавную букву, нужно зажать клавишу Shift, которая будет добавлена в сочетание клавиш.
      • место хранения макроса. Стандартно – это будет текущая книга, но, если требуется, можно выбрать новую книгу или личную книгу макросов. В нашем случае оставляем стандартный вариант.
      • При желании можно добавить описание к макросу.
      • По готовности кликаем OK.
    3. Теперь в созданный макрос будут записываться все действия, которые мы будем выполнить в книге. И так до тех пор, пока мы не остановим запись.
    4. Допустим, давайте давайте в ячейке D2 выполним умножение двух ячеек (B2 и B3): =B2*B3 .
    5. После того, как выражение готово, нажимаем клавишу Enter, чтобы получить результат. Затем останавливаем запись макроса, нажав на значок “Стоп” (появилась вместо кнопки “Записать макрос”) в группе инструментов “Код”.

    Запускаем выполнение макроса

    Чтобы проверить работу записанного макроса, нужно сделать следующее:

    1. В той же вкладке (“Разработчик”) и группе “Код” нажимаем кнопку “Макросы” (также можно воспользоваться горячими клавишами Alt+F8).
    2. В отобразившемся окошке выбираем наш макрос и жмем по команде “Выполнить”.Примечание: Есть более простой вариант запустить выполнение макроса – воспользоваться сочетанием клавиш, которое мы задали при создании макроса.
    3. Результатом проверки будет повторение ранее выполненных (записанных) действий.

    Корректируем макрос

    Созданный макрос можно изменить. Самая распространенная причина, которая приводит к такой необходимости – сделанные при записи ошибки. Вот как можно отредактировать макрос:

    1. Нажимаем кнопку “Макросы” (или комбинацию Ctrl+F8).
    2. В появившемся окошке выбираем наш макрос и щелкаем “Изменить”.
    3. На экране отобразится окно редактора “Microsoft Visual Basic”, в котором мы можем внести правки. Структура каждого макроса следующая:
      • открывается с команды “Sub”, закрывается – “End Sub”;
      • после “Sub” отображается имя макроса;
      • далее указано описание (если оно есть) и назначенная комбинация клавиш;
      • команда “Range(“…”).Select” возвращает номер ячейки. К примеру, “Range(“B2″).Select” отбирает ячейку B2.
      • В строке “ActiveCell.FormulaR1C1” указывается значение ячейки или действие в формуле.
    4. Давайте попробуем скорректировать макрос, а именно, добавить в него ячейку B4 со значением 3. В код макроса нужно добавить следующие строки:
      Range(«B4»).Select
      ActiveCell.FormulaR1C1 = «3»
    5. Для результирующей ячейки D2, соответственно, тоже нужно изменить начальное выражение на следующее:
      ActiveCell.FormulaR1C1 = «=RC[-2]*R[1]C[-2]*R[2]C[-2]» .Примечание: Обратите внимание, что адреса ячеек в данной строке (ActiveCell.FormulaR1C1) пишутся в стиле R1C1.
    6. Когда все готово, редактор можно закрывать (просто щелкаем на крестик в правом верхнем углу окна).
    7. Запускаем выполнение измененного макроса, после чего можем заметить, что в таблице появилась новая заполненная ячейка (B4 со значением “3”), а также, пересчитан результат с учетом измененной формулы.
    8. Если мы имеем дело с большим макросом, на выполнение которого может потребоваться немало времени, ручное редактирование изменений поможет быстрее справиться с задачей.
      • Добавив в конце команду Application.ScreenUpdating = False мы можем ускорить работу, так как во время выполнения макроса, изменения на экране отображаться не будут.
      • Если потребуется снова вернуть отображение на экране, пишем команду: Application.ScreenUpdating = True .
    9. Чтобы не нагружать программу пересчетом после каждого внесенного изменения, в самом начале пишем команду Application.Calculation = xlCalculationManual , а в конце – Application.Calculation = xlCalculationAutomatic . Теперь вычисление будет выполняться только один раз.

    Метод 2: создание макроса вручную

    Опытные пользователи Эксель в некоторых случаях предпочитают создавать макросы от начала до конца полностью вручную . План действий следующий:

    1. Во вкладке “Разработчик” нажимаем на значком “Visual Basic” (группа инструментов “Код”).
    2. В результате, на экране появится уже знакомое окно, которое мы рассмотрели выше.
    3. Здесь создается макрос и пишется ее код – полностью вручную.

    Заключение

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

    Что такое макрос в Excel и для чего он предназначен?

    Доброго времени, друзья. В сегодняшнем выпуске расскажу об интереснейшей функции в самом ходовом офисном пакете программ от Microsoft Office. Тем, кто постоянно работает с таблицами Excel, знает сколько рутинных операций приходится иногда делать с содержимым. Если документов много — приходится одни и те же действия повторять многократно. От выделения мышкой и копирования до более сложных — таких как вычисления, заполнение, очистка отдельных граф, создание таблиц, макетов и так далее.

    Читать еще:  Togglebutton vba excel

    Чтобы не повторять одни и те же действия каждый раз можно автоматизировать процесс и сэкономить время. Вы записываете свои действия (выделение ячеек документа, копирование, форматирование, ввод формул) в макрокоманду. Команда эта помещается в виде кнопки на панель инструментов. При нажатии кнопки все ваши записанные ранее действия выполняются автоматически. Это и есть «макрос».

    Лично для меня знакомство с макросами в свое время превратилось в изучение программирования. Дело в том, что Microsoft Office является еще и легкой и понятной средой для этого. В нем есть свой встроенный язык — Visual Basic for Application или сокращенно VBA. И когда записываете макросы, Вы вы как бы становитесь программистом. При этом не обязательно на первых этапах знать язык. Программный код можно посмотреть уже потом, в редакторе и изучать. Как смотреть — об этом так же расскажу.

    VBA позволяет создавать для себя мощные инструменты при работе с табличными документами для решения многих задач в виде отдельных окон, кнопок, списков, флажков — все визуально. А опытные программисты знают, что макросы можно использовать для того чтобы не набирать команды руками, а достать уже готовый код из только что записанного макроса. Но обо всем по порядку. Тем, кто после прочтения статьи заинтересуется и захочет изучать язык VBA самостоятельно в помощь книга. А сейчас разберемся подробно, что за «макросы», как их включать.

    Что означает макросы и как с ними работать?

    Итак, макрос — это некий программный код, который описывает ПОСЛЕДОВАТЕЛЬНОСТЬ ваших действий в документе. Записывается даже перемещение вашего курсора по ячейкам, нажатие клавиш. Сначала Вы записываете макрос. Когда понадобится, Вы в Excel запускаете этот код на выполнение и все записанные ранее действия выполняются автоматически. Например, у Вас есть одна и та же таблица, макет которой Вы каждую неделю создаете по новый, меняете оформление, или очищаете графы. Вы нажимаете кнопку, и вот, то на что вы тратили 5-10 минут заняло у вас всего одну секунду.

    Для начала нужно настроить Excel для работы с макросами. Это просто. На примере Office 2007 покажу как . В более поздних редакциях делается все почти аналогично. Сначала заходим в «Параметры»:

    Сначала настроим «Ленту»; нужно включить «Режим разработчика»:

    Если Вы собираетесь серьезно работать с макросами — нужно включить еще одну настройку. Здесь же переходим в «Центр управления безопасностью» и настраиваем «Параметры центра управления безопасностью»:

    Нужно отключить все ограничения на запуск макросов. Это позволит Вам не только работать со своими макросами но и запускать уже готовые кем — то созданные.

    Так же нужно доверять доступ к объектной модели проектов VBA. Ведь в Интернете или у коллег можно найти много готовых и интересных проектов VBA написанных для Excel, Word и пользоваться.

    Что такое макрос в Excel 2007?

    Мы пока что научимся записывать несложные макросы. Сделать это очень просто. В «Ленте» у нас теперь появились соответствующие значки «Разработчик»:

    В этом режиме нам будут доступны и остальные функции — «режим конструктора». Можно самостоятельно создавать окна, кнопки. А в редакторе Visual Basic можно редактировать созданные макросы. Итак, покажу, как все это работает. При нажатии кнопки «Запись макроса» сначала нужно будет заполнить его наименование(без пробелов), горячие клавиши вызова (не обязательно) и место где он будет сохранен:

    В зависимости от поставленной задачи Вы можете сохранять макросы в отдельном документе либо в «личной книге». В первом случае он записывается в пределах документа и будет выполняться только в документе. Во втором случае его можно вызвать перед созданием документа. Лучше продемонстрировать наглядно, для чего бывают нужны макросы. Задача: мне нужно создать: документ Excel, в документе создать таблицу определенного формата и вычислениями внутри. Смотрим видео, что получилось:

    Вы сами увидели, что процесс создания одной простенькой демо — таблицы занимает от пяти и более минут. А макрокомандой мы таблицу создали за 2 секунды. А если речь идет о сложных проектах? Ответ очевиден, создав один раз процедуру, вы сэкономите время и увеличите производительность своей работы.

    После окончания записи при закрытии Excel программа обязательно попросит сохранить изменения в «Личной книге» макросов. Не забываем согласиться; в противном случае записанный макрос пропадет и всё придется делать заново.

    Важно! «Личная книга» макросов хранится в папке пользователя по пути C:Users%Пользователь компьютера%AppDataRoamingMicrosoftExcelXLSTART. Этой книгой можно делится с другими или удалять, если что то не получилось.

    Наш макрос теперь доступен по кнопке «Макросы», оттуда его можно запускать.

    Что значит макрос в Excel 2016 и для чего он предназначен?

    Процесс записи макросов не отличается от ранних версий; еще в одном простом примере расскажу о другом способе вызова макрокоманд. Создание макросов позволит Вам познакомится с навыками программирования и кто знает, может это интересное дело Вас увлечёт.

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

    Для начала не забудем сделать настройки MSoffice 2016. Так же идем в «Параметры», но далее идем в «Настроить ленту»

    После «Разработчик» станет видимым на «Ленте». Переходим туда. Наша личная книга макросов по прежнему на месте, откроем ее:

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

    Как включить макросы в Excel 2016 видео

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

    Начинается программирование 😛 , из меню «Разработчик» вставляем кнопку в любое место нашего документа. Курсор измениться на перекрестье, затем рисуем кнопку в нужном месте:

    Нашей кнопке будет автоматически назначен макрос. Имя макроса, комбинацию клавиш, ставим произвольное, сохраняем в «Этой книге». Это означает, что работать кнопка будет только в этом документе.

    Далее, программа предложит способ создания макроса. Если Вы уже продвинутый VBA- програмиист, можно руками написать код, нажав «Создать». Но мы сегодня будем использовать уже знакомый нам способ — запись наших действий:

    Запись начата! Мы собираемся очистить выбранные графы от содержимого, поэтому одновременно выделим нужные диапазоны в графах «Количество» и «Цена». Для этого сначала выделим графу «Количество», затем зажимаем клавишу Ctrl и не отпуская ее выделяем нужные ячейки в графе «Цена», после отпускаем клавишу:

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

    Теперь, когда нужный диапазон ячеек выбран, нажимаем на клавиатуре клавишу Del и этим удаляем содержимое ячеек. Останавливаем запись макроса:

    Как и любой объект с кнопкой можно производить различные действия — копировать, удалять, форматировать, назначать им макросы. Мы пока что изменим наименование. Чтобы добраться до свойств кнопки нужно по ней щелкнуть правой кнопкой мыши:

    Читать еще:  Как вставить градус в excel

    Я изменил текст на «Очистить». Цвет, размер текста шрифт в кнопках так же можно менять по вкусу. Заглянем для этого в «Формат объекта»:

    Там все примерно так, как при форматировании ячейки. А изменять размеры самой кнопки и ее местоположение можно растягивая ее за края или перетаскивать:

    Ну и на последок давайте заглянем в редактор VBA и посмотрим, как выглядит написанный нами программный код нашего макроса. Для этого идем в наши «Макросы» , выбираем нужный и жмем «Войти» или «Изменить»:

    Другой способ — можно щелкнуть правой кнопкой мыши по кнопке и выбрать «Назначить макрос»; результат будет аналогичный. Открылся редактор VBA, в котором можно делать много чего интересного и полезного. Мы пока смотрим, что мы там напрограммировали:

    Простой и понятный пример кода; после комментариев (выделенных зеленым) идет сам код «Выбрать диапазон ячеек сначала один, затем другой, затем удаляем содержимое». Закрыть редактор можно как обычное окошко — нажав на крестик. Надеюсь, что такое макросы — Вы разобрались. Заодно узнали, как можно стать программистом. Удачи в освоении программы!

    VBA Excel. Макросы (запись, запуск, пример)

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

    Вкладка «Разработчик»

    Запись макроса осуществляется встроенным рекордером, кнопка запуска которого находится на вкладке «Разработчик» главного меню программы Excel. По умолчанию эта вкладка не отображается. Добавить вкладку на панель можно следующим образом:

    Excel 2010-2016

    Переходим по пути: Файл — Параметры — Настроить ленту. В разделе «Настроить ленту» справа в списке «Основные вкладки» устанавливаем флажок «Разработчик» и нажимаем кнопку «OK».

    Excel 2007

    Переходим по пути: значок «Microsoft Office» — Параметры Excel — категория «Основные», в категории «Основные» устанавливаем флажок «Показывать вкладку «Разработчик» на ленте» и нажимаем кнопку «OK».

    Excel 2000-2003

    Здесь ничего отображать не надо: кнопки по работе с макросами и редактором VBA находятся в главном меню на вкладке «Сервис» — «Макрос».

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

    Запись макроса

    Excel 2007-2016

    На ленте во вкладке «Разработчик» нажмите кнопку «Запись макроса».

    Excel 2000-2003

    Пройдите по пунктам меню «Сервис» — «Макрос» — «Начать запись».

    Окно «Запись макроса»

    Имя макроса: можно изменить или оставить по умолчанию («Макрос» с очередным номером). Если у вас уже есть макрос с таким именем, он будет записан в новый программный модуль, который будет создан автоматически.

    Сочетание клавиш: добавьте букву, если хотите запускать макрос сочетанием клавиш Ctrl+«буква». В какой раскладке вы впишите букву (например, «й» или «q»), в той и будет запускаться макрос. Если буква будет вписана в верхнем регистре («Й» или «Q»), используйте для запускa макроса сочетание клавиш Ctrl+Shift+«буква».

    Сохранить в: выберите книгу, в которой должен быть сохранен макрос:

    • «Эта книга» — макрос будет записан в книге, из которой рекордер был запущен (нажата кнопка «Запись макроса»).
    • «Новая книга» — откроется новая книга и макрос будет записан в ней.
    • «Личная книга макросов» — макрос запишется в Личную книгу макросов и будет доступен из всех открытых книг Excel.

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

    Заполнив окно, нажимаем кнопку «OK», кнопка «Запись макроса» меняет свое название на «Остановить запись», и можно приступать, собственно, к записи макроса. Выполните на рабочем листе операции, последовательность которых вы хотите автоматизировать и, после их завершения, нажмите кнопку «Остановить запись». Макрос будет записан и появится в списке макросов.

    Список макросов

    Окно со списком макросов открывается во всех версиях Excel нажатием кнопки «Макросы». Выглядит оно следующим образом:

    Список макросов во всех открытых книгах

    • Выполнить — выделенный макрос будет запущен на выполнение.
    • Войти — переход к коду макроса, запущенному и поставленному на паузу, как при обнаружении ошибки в коде.
    • Изменить — переход к коду макроса для редактирования.
    • Создать — кнопка станет активной при записи имени нового макроса в поле «Имя макроса».
    • Удалить — удаление выделенного макроса.
    • Параметры… — редактирование сочетания клавиш для запуска макроса и его описания.
    • Находится в: — здесь можно выбрать все открытые книги или одну из них.
    • Описание — текст, добавленный в одноименное поле при создании макроса или редактировании его параметров.

    Запуск макроса

    Запустить записанный макрос можно следующими способами:

    • Сочетанием клавиш, указанным в параметрах макроса.
    • Кнопкой «Выполнить» из окна списка макросов.
    • Кнопкой «Run Sub» или клавишей «F5» из редактора VBA.
    • Кнопкой, добавленной на лист Excel из раздела «Элементы управления формы» и которой назначен запускаемый макрос.

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

    Пример записи простого макроса

    Выполните следующие действия:

    Excel 2007-2016

    1. Откройте книгу Excel или создайте новую и сохраните ее как книгу с поддержкой макросов (.xlsm).
    2. На вкладке «Разработчик» нажмите кнопку «Запись макроса».
    3. В окне «Запись макроса» нажмите кнопку «OK», оставив параметры по умолчанию.
    4. Перейдите на вкладку «Главная» и выберите любой цвет заливки ячеек.
    5. Нажмите кнопку «Остановить запись».

    Excel 2000-2003

    1. Откройте книгу Excel или создайте новую и сохраните ее с расширением по умолчанию (.xls).
    2. Включите запись макроса, пройдя по пунктам меню «Сервис» — «Макрос» — «Начать запись».
    3. В окне «Запись макроса» нажмите кнопку «OK», оставив параметры по умолчанию.
    4. На панели инструментов выберите любой цвет заливки ячеек.
    5. Нажмите кнопку «Остановить запись».

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

    Откройте список макросов, выберите записанный макрос и нажмите кнопку «Изменить». Вы увидите код вашего макроса:

    Число (5296274) в вашем примере будет другим, в зависимости от выбранного цвета заливки.

    Выберите на активном листе любую ячейку или диапазон, вернитесь в редактор VBA и нажмите клавишу «F5» (курсор должен находиться в любом месте внутри кода запускаемого макроса). На активном листе выделенный диапазон окрасится в выбранный при записи макроса цвет.

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

    Скопируйте этот код и вставьте его внизу, под вашим макросом, в редакторе VBA (числовое значение цвета можете изменить на свое или оставить, как в примере). Проверьте его работоспособность, выбрав незакрашенные ячейки и запустив макрос клавишей «F5», не забыв о том, что курсор должен находиться внутри этого макроса.

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

    Назначение макроса кнопке

    Теперь давайте назначим записанный макрос (любой из двух) кнопке, добавленной на лист Excel из раздела «Элементы управления формы»:

    Читать еще:  Vba excel активная ячейка

    Excel 2007-2016

    1. На вкладке «Разработчик» нажмите кнопку «Вставить» и в разделе «Элементы управления формы» кликните по изображению кнопки.
    2. Переведите курсор на табличную область листа, курсор примет вид крестика, и кликните левой кнопкой мыши.
    3. В открывшемся окне «Назначить макрос объекту» выберите один из новых макросов и нажмите кнопку «OK». Если нажать кнопку «Отмена», новая кнопка будет создана без назначенного макроса. Его можно будет назначить позднее, кликнув по ней правой кнопкой мыши и выбрав в контекстном меню «Назначить макрос…»

    Excel 2000-2003

      1. Отобразите панель инструментов «Формы», пройдя по пунктам меню «Вид» — «Панели инструментов» — «Формы».
      2. Кликните по Кнопке на панели инструментов «Формы», затем переведите курсор на табличную часть рабочего листа, нажмите левую кнопку мыши и, не отпуская ее, нарисуйте прямоугольник (контур кнопки) нужного размера, затем отпустите кнопку мыши.
      3. В открывшемся окне «Назначить макрос объекту» выберите один из новых макросов и нажмите кнопку «OK». Если нажать кнопку «Отмена», новая кнопка будет создана без назначенного макроса. Его можно будет назначить позднее, кликнув по ней правой кнопкой мыши и выбрав в контекстном меню «Назначить макрос…»

    Кнопка создана. Выберите ячейку или диапазон и нажмите созданную кнопку. Цвет фона изменится.

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

    Сокращенный вариант кода по очистке фона будет выглядеть так:

    Остановка выполнения макроса Excel при нажатии клавиши Esc не будет работать

    Я запускаю excel 2007 на XP.

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

    На этот раз (и я делал это раньше, но не так плохо), я настроил msgbox для быстрой отладки. Оказалось, что он должен был сделать цикл около 6000 раз, что означало, что я должен был «OK» 6000 ящиков сообщений, что заняло несколько минут. Я не сохранил перед запуском (еще одна ошибка), поэтому я не мог открыть Диспетчер задач для выхода.

    Есть ли другой способ остановить выполнение макроса в случае, если я снова облажаюсь?

    8 Ответов

    Используйте CRTL + BREAK для приостановки выполнения в любой момент. Вы будете переведены в режим прерывания и можете нажать F5 для продолжения выполнения или F8 для выполнения кода step-by-step в визуальном отладчике.

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

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

    Используйте Debug.Print для вывода сообщений в окно немедленного доступа в Редакторе VBA, это гораздо удобнее, чем MsgBox .

    Используйте точки останова или ключевое слово Stop , чтобы автоматически остановить выполнение в интересных областях.

    Вы можете использовать Debug.Assert для остановки выполнения условно .

    CTRL + SCR LK (блокировка прокрутки) работали на меня.

    Иногда правильный набор клавиш ( Pause , Break или ScrLk) не доступны на клавиатуре (в основном это происходит с пользователями ноутбуков) и нажатие Esc 2, 3 или несколько раз не останавливает макрос тоже.

    Я тоже застрял и в конце концов нашел решение в функции доступности Windows, после чего я перепробовал все исследованные варианты, и 3 из них работали для меня в 3 разных сценариях.

    Шаг #01: если на вашей клавиатуре нет определенной клавиши, пожалуйста, не волнуйтесь и откройте ‘OnScreen Keyboard’ из Windows утилит, нажав Win + U .

    Шаг #02: теперь попробуйте любой из приведенных ниже вариантов, и они определенно будут работать в зависимости от вашей архитектуры системы, т. е. OS и версии Office

    • Ctrl + Pause
    • Ctrl + ScrLk
    • Esc + Esc (нажмите два раза подряд)

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

    Вы можете остановить макрос, нажав ctrl + break , но если у вас нет ключа break , вы можете использовать этот код autohotkey (open source):

    +ESC:: SendInput вернуть

    Нажатие shift + Escape будет подобно нажатию ctrl + break и, таким образом, остановит ваш макрос.

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

    Вы также можете попробовать нажать клавишу «FN» или функциональную клавишу с кнопкой «Break» или с кнопкой «sys rq»-системный запрос, как это-должен быть нажат вместе, и это останавливает любой запущенный макрос

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

    Я забыл закомментировать строку с MsgBox перед выполнением моего макроса. Это значит, что мне придется нажать кнопку OK более ста тысяч раз. Ключ ESC просто выходил из окна сообщения, но не останавливал выполнение макроса. Удержание клавиши ESC непрерывно в течение нескольких секунд помогло мне остановить выполнение кода.

    Похожие вопросы:

    Этот поток объяснил сохранение макроса vim в файл, но я не могу заставить его работать. У меня есть следующий макрос, сохраненный в регистре b, который я пытаюсь сохранить в свой файл rst.vim: let.

    Поле ввода/текста на основе Angular-Material не должно выходить из поиска при нажатии кнопки ESC; есть ли какая-либо настройка для этого? Ожидаемый вид при нажатии кнопки Escape Панель текущие.

    Как закрыть rich:popupPanel при нажатии клавиши Esc? как заставить его работать для горячих клавиш в клавиатуре?

    У нас есть встроенное приложение, которое реагирует на нажатие Esc, когда мы получаем доступ к нему через последовательный канал, но не когда мы получаем доступ к плате через Telnet. Есть какие-то.

    Я использую http://onehackoranother.com/projects/jquery/boxy / Как закрыть квадратное окно при нажатии клавиши ESC?

    Как я могу добавить что-то вроде addCloseHandler в диалоговое окно, которое закрывается при нажатии клавиши ESC?

    Я пытаюсь закрыть bootstrap popover с помощью клавиши ESC . Но это, кажется, не работает при использовании: $(document).keyup(function (event) < if (event.which === 27) <.

    Есть ли какой-либо способ очистить textbox при нажатии клавиши, как в excel. Я попробовал следующий код, но он очищает текст при нажатии на textbox. Я хочу, чтобы он очистился, когда будет нажата.

    В моем приложении я добавил функциональность для минимизации окна приложения в системный трей при нажатии клавиши (на кнопках ESC или Pause/Break). Поэтому при нажатии на них окно сводится к.

    Я хотел бы иметь функцию , которая работает как input() , но которая возвращает None (например) при нажатии клавиши Esc . Я попытался сделать следующее: def input(t): print(t) text = while True.

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector
    ×
    ×