Cuprins:
- Evenimentul OnTime
- În timp ce lucrați, Excel monitorizează constant ceea ce tastați. Din această cauză puteți seta lucrurile astfel încât o tastatură sau o combinație de taste să execute o procedură.
Video: Xiaomi Mi 9 PARAMPARÇA! TÜRKİYE'DE İLK teknik özellikler! 2025
Există două tipuri de evenimente pe care le puteți utiliza în programarea VBA pentru Excel 2016 care nu sunt asociate cu obiecte: timpul și apăsările de taste. Deoarece timpul și apăsările de taste nu sunt asociate cu un anumit obiect, cum ar fi un registru de lucru sau o foaie de lucru, programați aceste evenimente într-un modul VBA normal.
Evenimentul OnTime
Evenimentul OnTime apare când apare un anumit moment al zilei. Următorul exemplu demonstrează modul de a obține Excel să execute o procedură atunci când 3 p. m. evenimentul apare. În acest caz, o voce robot vă spune să vă treziți, însoțită de o casetă de mesaj:
Sub SetAlarm () Aplicație. OnTime 0. 625, aplicația "DisplayAlarm" End Sub Sub DisplayAlarm (). Vorbire. Vorbește ("Hei, trezește-te") MsgBox "E timpul pentru pauza de după-amiază! "End Sub
În acest exemplu, se folosește metoda OnTime a obiectului Application. Această metodă are două argumente: timpul (0,625 sau 3:00 p. M.) Și numele procedurii Sub care se execută la producerea evenimentului de timp (DisplayAlarm).
Această procedură este destul de utilă dacă tind să fii atât de înrădăcinată în munca pe care o uiți de întâlniri și întâlniri. Doar setați un eveniment OnTime pentru a vă reaminti.
Majoritatea oamenilor consideră că este dificil să se gândească la timp în ceea ce privește sistemul de numerotare Excel. Prin urmare, poate doriți să utilizați funcția VBA TimeValue pentru a reprezenta timpul. TimeValue convertește un șir care arată ca o perioadă într-o valoare pe care Excel o poate gestiona. Următoarea declarație arată o modalitate mai ușoară de programare a unui eveniment pentru 3 pagini. m.:
Aplicație. OnTime TimeValue ("3: 00: 00 pm"), "DisplayAlarm"
Dacă doriți să programați un eveniment relativ la ora curentă (de exemplu, 20 de minute de acum) Aplicație. OnTime Now + TimeValue ("00: 20: 00"), "DisplayAlarm"
De asemenea, puteți utiliza metoda OnTime pentru a rula o procedură VBA într-o anumită zi. Trebuie să vă asigurați că computerul continuă să funcționeze și că registrul de lucru al procedurii este deschis. Următoarea declarație rulează procedura DisplayAlarm la 5 p. m. la data de 31 decembrie 2016:
Cerere. OnTime DateValue ("31/31/2016 5:00"), "DisplayAlarm"
Această linie de cod specială ar putea fi utilă pentru a vă avertiza că trebuie să vă duceți acasă și să vă pregătiți pentru festivitățile de Revelion.
Iată un alt exemplu care utilizează evenimentul OnTime. Executarea procedurilor UpdateClock scrie timpul la celula A1 și, de asemenea, programează un alt eveniment cu cinci secunde mai târziu.Acest eveniment reia procedura UpdateClock. Efectul net este că celula A1 este actualizată cu timpul curent la fiecare cinci secunde. Pentru a opri evenimentele, executați procedura StopClock (care anulează evenimentul). Rețineți că NextTick este o variabilă la nivel de modul care stochează timpul pentru următorul eveniment.
Dim NextTick ca Data Sub UpdateClock () 'Actualizează celula A1 cu ora curentă ThisWorkbook. Foi (1). Intervalul ("A1") = Timpul 'Setarea următorului eveniment de cinci secunde de acum. NextTick = Now + TimeValue ("00: 00: 05") Aplicație. OnTime NextTick, "UpdateClock" End Sub Sub StopClock () 'Anulează evenimentul OnTime (oprește ceasul) La eroare Reluare Următoarea aplicație. OnTime NextTick, "UpdateClock", False End Sub
Evenimentul OnTime persistă chiar și după ce se închide registrul de lucru. Cu alte cuvinte, dacă închideți registrul de lucru fără a rula procedura StopClock, registrul de lucru se va redeschide în cinci secunde (presupunând că programul este încă în execuție). Pentru a preveni acest lucru, utilizați o procedură Eveniment Workbook_BeforeClose care conține următoarea declarație:
Call StopClock
Metoda OnTime are două argumente suplimentare. Dacă intenționați să utilizați această metodă, trebuie să consultați sistemul de ajutor pentru detalii complete.
Dacă doriți să vedeți o aplicație destul de complicată, verificați această aplicație analogică. Fața ceasului este de fapt o diagramă, iar graficul este actualizat în fiecare secundă pentru a afișa ora din zi. Inutil, dar distractiv.
O aplicație analogică de ceas.
În timp ce lucrați, Excel monitorizează constant ceea ce tastați. Din această cauză puteți seta lucrurile astfel încât o tastatură sau o combinație de taste să execute o procedură.
Iată un exemplu care reassignează tastele PgDn și PgUp:
Sub Application_OnKey () Application. Aplicație OnKey "{PgDn}", "PgDn_Sub". OnKey "{PgUp}", "PgUp_Sub" Sfârșit Sub Sub PgDn_Sub () La eroare Reluați Următorul ActiveCell. Offset (1, 0). Activați End Sub Sub PgUp_Sub () La eroare Reluați Următorul ActiveCell. Offset (-1, 0). Activați End Sub
După ce ați setat evenimentele OnKey executând procedura Setup_OnKey, apăsând PgDn vă mută într-un rând. Apăsând PgUp vă mută un rând.
Observați că codurile cheie sunt închise în brațe, nu în paranteze. Pentru o listă completă a codurilor de tastatură, consultați sistemul de ajutor. Căutați
OnKey. În acest exemplu, pe eroare Resume Next este folosit pentru a ignora eventualele erori generate. De exemplu, dacă celula activă se află în primul rând, încercarea de a deplasa în sus un rând duce la o eroare care poate fi ignorată în siguranță. Și dacă o foaie de diagramă este activă, nu există o celulă activă.
Prin executarea următoarei rutine, anulați evenimentele OnKey:
Sub Application Cancel_OnKey (). OnKey "{PgDn}" Aplicație. OnKey "{PgUp}" End Sub
Folosind un șir gol ca al doilea argument pentru metoda OnKey,
nu anulează evenimentul OnKey. Mai degrabă, face ca Excel să ignore pur și simplu tasta. De exemplu, următoarea declarație spune Excel să ignore Alt + F4. Semnul procentual reprezintă tasta Alt: Aplicație.OnKey "% {F4}", ""
Deși puteți utiliza metoda OnKey pentru a atribui o cheie de comandă rapidă pentru executarea unei macrocomenzi, ar trebui să utilizați caseta de dialog Opțiuni macro pentru această sarcină.
Dacă închideți registrul de lucru care conține codul și lăsați Excel deschis, metoda OnKey nu va fi resetată. Prin urmare, apăsarea tastei de comandă rapidă va determina Excel să deschidă automat fișierul cu ajutorul macrocomenzii. Pentru a preveni acest lucru, trebuie să includeți codul în codul evenimentului Workbook_BeforeClose pentru a reseta evenimentul OnKey.
