Как да стартирате макрос в Excel

Въпреки че изпълнението на макрос в Excel не е трудно, има много начини да ги изпълните. Някои начини са предназначени да улеснят използването на макроси, докато други начини могат да променят напълно начина, по който потребителят взаимодейства с вашата работна книга. В тази статия ще разгледаме някои очевидни начини за изпълнение на макроси, като списъци с макроси и бутони, и някои по -неясни начини като VB Editor и Events.

Първо: Уверете се, че макросите са активирани

Функциите за сигурност на Excel ще деактивират макросите по подразбиране. При отваряне на работна книга с активирани макроси потребителите обикновено се подканят дали искат да разрешат макроси.

Ако не можете да стартирате макроси, опитайте да следвате тези инструкции:

  • Запазете работната книга
  • Затворете работната книга, след което я отворете отново
  • Когато работната книга се зареди, ще видите a Предупреждение за сигурност подкана (на снимката по -долу). Щракнете Активиране на съдържанието.

Стартирайте макрос от списъка с макроси

Списък с макроси може да бъде достъпен от раздела Изглед. За да видите този списък:

  • Изберете Изглед раздел
  • Щракнете върху бутона с етикет Макроси за да изведете списъка с макроси

  • Изберете макроса, който искате да изпълните от списъка, след което щракнете върху Бягай бутон

Можете също така да покажете списъка с макроси по всяко време, като натиснете ALT+F8.

Стартирайте макрос с помощта на клавишна комбинация

Можете да присвоите клавишна комбинация на макрос, който използвате често, под формата на CTRL+или CTRL+SHIFT+. Да го направя:

  • Отворете списъка с макроси (Изглед > Макросиили ALT+F8)
  • Изберете макроса, към който искате да приложите пряк път
  • Щракнете Настроики… да покаже на Опции за макроси поддиалог

  • В текстовото поле под Клавиш за бърз достъп, въведете една буква и след това щракнете Добре. Ако задържите клавиша SHIFT, докато въвеждате буквата, етикетът до полето ще показва SHIFT като част от пряк път

ЗАБЕЛЕЖКА: силно се препоръчва да използвате SHIFT, когато създавате клавиш за бърз достъп! Excel използва CTRL+ преки пътища за себе си, напр. CTRL+C за копиране или CTRL+V за запазване. Ако създадете пряк път за макрос, използвайки тези или други преки пътища на Excel, ще презапишете прекия път на Excel, докато не присвоите отново прекия път на макроса.

Стартирайте макрос от VB Editor

Макросите могат да се изпълняват и от VB Editor. VB Editor ви позволява да прегледате кода на макроса и да направите каквито искате промени, преди да го стартирате.

За да стартирате макрос в редактора на VB:

  • Отворете VB Editor (раздел Developer> Visual Basic или ALT+F11)

  • В Проект прозорец, щракнете двукратно върху модула, съдържащ макроса, който искате да тествате
  • В прозореца с кодове на модула, поставете курсора навсякъде в кода на макроса между „Sub“ и „End Sub“
  • Щракнете върху Бягай бутон в лентата с инструменти или натиснете клавишната комбинация F5

Изпълнете макрос с помощта на бутон или форма

Често е полезно да имате контрол на работния лист, върху който потребителят може да кликне, за да стартира макрос, като контрола на бутони или форма. Това е много по-бързо за крайните потребители, отколкото отварянето на списъци с макроси или копаенето през макрокода във VB Editor.

Информация за това как да създадете бутон или форма, върху която можете да кликнете, може да бъде намерена тук: Добавете бутон и задайте макрос в Excel.

Автоматично стартиране на макрос с помощта на събития във VBA

Възможно е да накарате макрос да се изпълнява, когато нещо се случи в Excel - например, когато се отвори работна книга или когато се промени стойност на клетка. Тези се наричат Събития, и можете да напишете VBA код, за да извикват макроси или да извършват други операции.

За да напишете код за събитие, ще трябва да използвате VB Editor. Например, за да видите събития за работната книга:

  • Отворете VB Editor (ALT+F11)
  • Щракнете двукратно върху Тази работна книга обект в редактора на VB Прозорец на проекта
  • Изберете „Работна книга“ от падащото меню в горния ляв ъгъл на прозореца с кода
  • Щракнете върху падащото меню вдясно, за да видите списък със събития

По -долу са малка, но полезна извадка от събития в Excel, от които можете да стартирате макроси.

Workbook_Open ()

Събитието Workbook_Open () се задейства при отваряне на работна книга. Ако получите предупреждение за сигурност след отваряне на работна книга, това събитие се задейства, след като щракнете върху „Активиране на съдържанието“.

12345 Private Sub Workbook_Open ()MsgBox "Работната книга е отворена!"End Sub

Workbook_BeforeClose (Отказ като булев)

Workbook_BeforeClose () се задейства, когато потребителят се опита да затвори работната книга. Това се случва преди да се направят каквито и да било проверки, за да се види дали работната книга трябва да бъде запазена.

The Отказ параметърът може да бъде зададен на True, за да спре затварянето на работната книга.

123456789 Private Sub Workbook_BeforeClose (Отказ като булев)Ако MsgBox ("Сигурен ли сте?", VbYesNo + vbQuestion, "Close") = vbNo ТогаваОтказ = ВярноКрай АкоEnd Sub

Worksheet_Change (ByVal Target As Range)

Worksheet_Change () се задейства при промяна на стойността на клетка - независимо дали е променена от макрос, чрез операция копиране/поставяне или от външна връзка. Той обаче не се задейства, когато стойност се преизчислява по формула.

The Цел параметърът представлява клетките, чиято стойност се е променила.

Ако промените стойността на други клетки в това събитие, събитието ще се задейства отново. Това може да причини безкраен цикъл. Ако трябва да промените стойностите на клетките, без да задействате това събитие, помислете за настройка Application.EnableEvents да се Фалшиво първо и след това го върнете на Вярно в края на процедурата на събитието.

123456789 Частен под работен лист_Смяна (ByVal Target As Range)MsgBox "Клетки променени:" & Target.AddressApplication.EnableEvents = FalseОбхват ("A2"). Стойност = Обхват ("A2"). Стойност + Target.Cells.CountApplication.EnableEvents = ВярноEnd Sub

Worksheet_SelectionChange (ByVal Target As Range)

Това събитие се задейства, когато са избрани различни клетки с прицелната мрежа. Параметърът Target представлява новите клетки, които са избрани.

Можете също да задействате това събитие с код, т.е. „Диапазон („ A1 ”). Изберете”. Както при Worksheet_Change (), трябва да внимавате при избора на други клетки в това събитие, тъй като можете да предизвикате безкраен цикъл. Използвайте Application.EnableEvents.

123456789 Частен под работен лист_SelectionChange (ByVal Target As Range)Ако Target.Address = "$ A $ 1" ТогаваMsgBox "Курсор в начална позиция."Край АкоEnd Sub

Спрете работещ макрос

Работещият макрос може да бъде прекъснат с натискане ESC или CTRL+BREAK. По подразбиране прекъснатият макрос ще покаже следния диалогов прозорец:

Щракване Край ще спре макроса, докато продължи ще го възобнови. Щракване Отстраняване на грешки ще отвори макроса във VB Editor и ще съсредоточи реда от код, върху който изпълнението е било поставено на пауза. (В редактора на VB можете да спрете или възобновите макроса, като използвате бутоните Run или End на лентата с инструменти.)

Application.EnableCancelKey

Можете да деактивирате възможността за спиране на макрос с ESC или CTRL+BREAK, като зададете Application.EnableCancelKey Имот. Това свойство има три възможни стойности:

  • xlПрекъсване - това е стойността по подразбиране, която кара Excel да покаже диалоговия прозорец по -горе
  • xlDisabled - премахва възможността за спиране на работещ макрос
  • xlErrorHandler - при опит за прекъсване се изхвърля грешка, която може да бъде обработена в код

Всеки път, когато изпълнението на кода спре, Excel винаги нулира стойността на Application.EnableCancelKey обратно на xlПрекъсване.

Добра причина да използвате този имот е сигурността. Например, ако имате макрос, който временно незащитени части от работната ви книга, потребител може потенциално да спре макроса веднага след премахването на защитата и да получи достъп до съдържание, което не сте възнамерявали да имат. Задавайки Application.EnableCancelKey, можете напълно да деактивирате способността им да правят това или да се справите грациозно с прекъсването им с манипулатор на грешки, който отново защитава работната книга.

1234567891011 Sub UpdateBaseData (ByVal NewData As Range, ByVal Target As Range)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Unprotect "MyPassword"NewData.Copy TargetTarget.Worksheet.Protect "MyPassword"Application.EnableCancelKey = xlInterruptEnd Sub

Принудително затваряне на Excel с диспечера на задачите на Windows

Ако макросът е „увиснал“ или Excel е станал твърде зает, за да потвърди опит за прекъсване, може да се наложи да затворите принудително самия Excel с Windows Task Manager. (ЗАБЕЛЕЖКА: ако направите това, може да загубите всяка незаписана работа и да трябва да разчитате на версия за автоматично възстановяване на вашата работна книга.)

  • Отворете диспечера на задачите директно с помощта CTRL+SHIFT+ESC
  • Изберете „Процеси" раздел
  • Разгънете елемента „Microsoft Excel“, за да покажете всички работни книги
  • Изберете работната книга, която искате да затворите, след което щракнете Последна задача в долния десен ъгъл

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave