Как да използвате OnTime Events и Keypress Events в Excel 2016 VBA

Има два типа събития, които можете да използвате в VBA програмирането за Excel 2016, които не са свързани с обекти: време и натискане на клавиши. Тъй като времето и натисканията на клавиши не са свързани с конкретен обект като работна книга или работен лист, вие програмирате тези събития в нормален VBA модул.

Събитието OnTime

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

Sub SetAlarm()
  Application.OnTime 0.625, „DisplayAlarm“
Край под
Поддисплейна аларма()
  Application.Speech.Speak („Хей, събуди се“)
  MsgBox „ Време е за вашата следобедна почивка!“
Край под

В този пример се използва методът OnTime на обекта Application. Този метод приема два аргумента: времето (0,625 или 15:00) и името на процедурата Sub, която да се изпълни, когато настъпи събитието във времето (DisplayAlarm).

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

Повечето хора смятат, че е трудно да мислят за времето от гледна точка на системата за номериране на Excel. Следователно може да искате да използвате функцията VBA TimeValue, за да представите времето. TimeValue преобразува низ, който изглежда като време, в стойност, която Excel може да обработва. Следното твърдение показва по-лесен начин за програмиране на събитие за 15 часа:

Application.OnTime TimeValue(„3:00:00 pm“), „DisplayAlarm“

Ако искате да насрочите събитие спрямо текущото време (например след 20 минути), можете да използвате изявление като това:

Application.OnTime сега + TimeValue(„00:20:00“), „DisplayAlarm“

Можете също да използвате метода OnTime, за да стартирате VBA процедура в определен ден. Трябва да се уверите, че вашият компютър продължава да работи и че работната книга с процедурата остава отворена. Следното изявление изпълнява процедурата DisplayAlarm в 17 часа на 31 декември 2016 г.:

Application.OnTime DateValue(„31.12.2016 17:00“), „DisplayAlarm“

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

Ето още един пример, който използва събитието OnTime. Изпълнението на процедурите UpdateClock записва времето в клетка A1 и също така програмира друго събитие пет секунди по-късно. Това събитие стартира повторно процедурата UpdateClock. Нетният ефект е, че клетка A1 се актуализира с текущото време на всеки пет секунди. За да спрете събитията, изпълнете процедурата StopClock (която отменя събитието). Имайте предвид, че NextTick е променлива на ниво модул, която съхранява времето за следващото събитие.

Затъмнете NextTick като дата
Sub UpdateClock()
' Актуализира клетка A1 с текущото време
  Тази работна тетрадка.Листове(1).Обхват(“A1”) = Време
' Настройте следващото събитие след пет секунди
  NextTick = Сега + TimeValue(“00:00:05”)
  Application.OnTime NextTick, „UpdateClock“
Край под
Sub StopClock()
' Отменя събитието OnTime (спира часовника)
  При грешка Продължете напред
  Application.OnTime NextTick, „UpdateClock“, , False
Край под

Събитието OnTime продължава дори след затваряне на работната книга. С други думи, ако затворите работната книга, без да изпълнявате процедурата StopClock, работната книга ще се отвори отново след пет секунди (ако приемем, че Excel все още работи). За да предотвратите това, използвайте процедура за събитие Workbook_BeforeClose, която съдържа следния израз:

Обадете се на StopClock

Методът OnTime има два допълнителни аргумента. Ако планирате да използвате този метод, трябва да се обърнете към системата за помощ за пълни подробности.

Ако искате да видите доста сложно приложение, вижте това приложение за аналогов часовник. Циферблатът на часовника всъщност е диаграма и диаграмата се актуализира всяка секунда, за да покаже часа от деня. Безполезно, но забавно.

Как да използвате OnTime Events и Keypress Events в Excel 2016 VBA

Приложение за аналогов часовник.

Събития при натискане на клавиш

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

Ето пример, който преназначава клавишите PgDn и PgUp:

Поднастройка_OnKey()
  Application.OnKey „{PgDn}“, „PgDn_Sub“
  Application.OnKey „{PgUp}“, „PgUp_Sub“
Край под
Sub PgDn_Sub()
  При грешка Продължете напред
  ActiveCell.Offset(1, 0).Активиране
Край под
Sub PgUp_Sub()
  При грешка Продължете напред
  ActiveCell.Offset(-1, 0).Активиране
Край под

След като настроите OnKey събитията чрез изпълнение на процедурата Setup_OnKey, натискането на PgDn ви премества един ред надолу. Натискането на PgUp ви премества с един ред нагоре.

Обърнете внимание, че кодовете на клавишите са затворени в скоби, а не в скоби. За пълен списък с кодове на клавиатурата вижте системата за помощ. Потърсете OnKey.

В този пример On Error Resume Next се използва за игнориране на всички генерирани грешки. Например, ако активната клетка е в първия ред, опитът за придвижване с един ред нагоре води до грешка, която може безопасно да бъде игнорирана. И ако лист с диаграма е активен, няма активна клетка.

Като изпълните следната рутина, вие отменяте OnKey събитията:

Под Cancel_OnKey()
  Application.OnKey „{PgDn}“
  Application.OnKey „{PgUp}“
Край под

Използването на празен низ като втори аргумент за метода OnKey не отменя събитието OnKey. По-скоро кара Excel просто да игнорира натискането на клавиш. Например следното изявление казва на Excel да игнорира Alt+F4. Знакът за процента представлява клавиша Alt:

  Application.OnKey „%{F4}“, „“

Въпреки че можете да използвате метода OnKey, за да зададете клавиш за бърз достъп за изпълнение на макрос, трябва да използвате диалоговия прозорец Опции на макроса за тази задача.

Ако затворите работната книга, която съдържа кода, и оставите Excel отворен, методът OnKey няма да бъде нулиран. В резултат на това натискането на клавиша за бърз достъп ще накара Excel автоматично да отвори файла с макроса. За да предотвратите това да се случи, трябва да включите код във вашия код на събитие Workbook_BeforeClose, за да нулирате събитието OnKey.


Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирам Microsoft Word да отваря файлове в режим само за четене в Windows Microsoft Word отваря файлове в режим само за четене, което прави невъзможно редактирането им? Не се притеснявайте, методите са по-долу

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате грешки при отпечатването на неправилни документи на Microsoft Word Грешките при отпечатването на документи на Word с променени шрифтове, разхвърляни абзаци, липсващ текст или изгубено съдържание са доста чести. Въпреки това недейте

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Ако сте използвали писалката или маркера, за да рисувате върху слайдовете на PowerPoint по време на презентация, можете да запазите чертежите за следващата презентация или да ги изтриете, така че следващия път, когато го покажете, да започнете с чисти слайдове на PowerPoint. Следвайте тези инструкции, за да изтриете чертежи с писалка и маркери: Изтриване на линии една в […]

Съдържание на библиотеката за стилове в SharePoint 2010

Съдържание на библиотеката за стилове в SharePoint 2010

Библиотеката със стилове съдържа CSS файлове, файлове с разширяем език на стиловия език (XSL) и изображения, използвани от предварително дефинирани главни страници, оформления на страници и контроли в SharePoint 2010. За да намерите CSS файлове в библиотеката със стилове на сайт за публикуване: Изберете Действия на сайта→Преглед Цялото съдържание на сайта. Появява се съдържанието на сайта. Библиотеката Style се намира в […]

Форматирайте числата в хиляди и милиони в отчети на Excel

Форматирайте числата в хиляди и милиони в отчети на Excel

Не затрупвайте аудиторията си с огромни числа. В Microsoft Excel можете да подобрите четливостта на вашите табла за управление и отчети, като форматирате числата си така, че да се показват в хиляди или милиони.

Как да споделяте и следвате сайтове на SharePoint

Как да споделяте и следвате сайтове на SharePoint

Научете как да използвате инструменти за социални мрежи на SharePoint, които позволяват на индивиди и групи да общуват, да си сътрудничат, споделят и да се свързват.

Как да конвертирате дати в юлиански формати в Excel

Как да конвертирате дати в юлиански формати в Excel

Юлианските дати често се използват в производствени среди като времеви печат и бърза справка за партиден номер. Този тип кодиране на дата позволява на търговците на дребно, потребителите и обслужващите агенти да идентифицират кога е произведен продуктът и по този начин възрастта на продукта. Юлианските дати се използват и в програмирането, военните и астрономията. Различно […]

Как да създадете уеб приложение на Access

Как да създадете уеб приложение на Access

Можете да създадете уеб приложение в Access 2016. И така, какво всъщност е уеб приложение? Е, уеб означава, че е онлайн, а приложението е просто съкращение от „приложение“. Персонализирано уеб приложение е онлайн приложение за база данни, достъпно от облака с помощта на браузър. Вие създавате и поддържате уеб приложението в настолната версия […]

Лента за бързо стартиране в SharePoint 2010

Лента за бързо стартиране в SharePoint 2010

Повечето страници в SharePoint 2010 показват списък с връзки за навигация в лентата за бързо стартиране в лявата част на страницата. Лентата за бързо стартиране показва връзки към представено съдържание на сайта, като списъци, библиотеки, сайтове и страници за публикуване. Лентата за бързо стартиране включва две много важни връзки: Връзка към цялото съдържание на сайта: […]

Какво означават съобщенията за грешка на Solver в Excel?

Какво означават съобщенията за грешка на Solver в Excel?

За прости проблеми Solver в Excel обикновено бързо намира оптималните стойности на променливата Solver за целевата функция. Но в някои случаи Solver има проблеми с намирането на стойностите на променливата Solver, които оптимизират целевата функция. В тези случаи Solver обикновено показва съобщение или съобщение за грешка, което описва или обсъжда проблема, който […]