Hur man använder OnTime Events och Keypress Events i Excel 2016 VBA

Det finns två typer av händelser du kan använda i VBA-programmering för Excel 2016 som inte är associerade med objekt: tid och knapptryckningar. Eftersom tid och knapptryckningar inte är associerade med ett visst objekt såsom en arbetsbok eller ett kalkylblad, programmerar du dessa händelser i en vanlig VBA-modul.

OnTime-händelsen

OnTime-händelsen inträffar när en viss tid på dagen inträffar. Följande exempel visar hur du får Excel att köra en procedur när händelsen 15.00 inträffar. I det här fallet säger en robotröst dig att vakna, åtföljd av en meddelanderuta:

Sub SetAlarm()
  Application.OnTime 0.625, "DisplayAlarm"
Avsluta Sub
Sub DisplayAlarm()
  Application.Speech.Speak ("Hej, vakna")
  MsgBox “ Det är dags för eftermiddagsuppehåll!”
Avsluta Sub

I det här exemplet används OnTime-metoden för Application-objektet. Denna metod kräver två argument: tiden (0,625 eller 15:00) och namnet på den underordnade proceduren som ska utföras när tidshändelsen inträffar (DisplayAlarm).

Denna procedur är ganska användbar om du tenderar att bli så insvept i ditt arbete att du glömmer möten och möten. Ställ bara in en OnTime-händelse för att påminna dig själv.

De flesta har svårt att tänka på tid i termer av numreringssystemet Excel. Därför kanske du vill använda VBA TimeValue-funktionen för att representera tiden. TimeValue konverterar en sträng som ser ut som en tid till ett värde som Excel kan hantera. Följande uttalande visar ett enklare sätt att programmera en händelse för 15:00:

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

Om du vill schemalägga en händelse i förhållande till den aktuella tiden (till exempel 20 minuter från nu), kan du använda ett uttalande så här:

Application.OnTime Now + TimeValue(“00:20:00”), “DisplayAlarm”

Du kan också använda OnTime-metoden för att köra en VBA-procedur en viss dag. Du måste se till att din dator fortsätter att köras och att arbetsboken med proceduren hålls öppen. Följande uttalande kör DisplayAlarm-proceduren kl. 17.00 den 31 december 2016:

Application.OnTime DateValue(“12/31/2016 5:00 pm”), “DisplayAlarm”

Denna speciella kodrad kan vara praktisk för att varna dig om att du måste gå hem och göra dig redo för nyårsfestligheterna.

Här är ett annat exempel som använder OnTime-händelsen. Genom att köra UpdateClock-procedurerna skrivs tiden till cell A1 och programmeras även en annan händelse fem sekunder senare. Denna händelse körs UpdateClock-proceduren igen. Nettoeffekten är att cell A1 uppdateras med aktuell tid var femte sekund. För att stoppa händelserna, kör StopClock-proceduren (som avbryter händelsen). Observera att NextTick är en variabel på modulnivå som lagrar tiden för nästa händelse.

Dimma NästaBocka som datum
Sub UpdateClock()
' Uppdaterar cell A1 med aktuell tid
  ThisWorkbook.Sheets(1).Range(“A1”) = Tid
' Ställ in nästa händelse om fem sekunder
  NextTick = Nu + TimeValue(“00:00:05”)
  Application.OnTime NextTick, "UpdateClock"
Avsluta Sub
Sub StopClock()
' Avbryter OnTime-händelsen (stoppar klockan)
  Vid fel Resume Next
  Application.OnTime NextTick, “UpdateClock”, , False
Avsluta Sub

OnTime-händelsen kvarstår även efter att arbetsboken stängts. Med andra ord, om du stänger arbetsboken utan att köra StopClock-proceduren, kommer arbetsboken att öppnas igen efter fem sekunder (förutsatt att Excel fortfarande körs). För att förhindra detta, använd en Workbook_BeforeClose-händelseprocedur som innehåller följande uttalande:

Ring StopClock

OnTime-metoden har ytterligare två argument. Om du planerar att använda den här metoden bör du gå till hjälpsystemet för fullständig information.

Om du vill se en ganska komplicerad applikation, kolla in denna analoga klockapplikation. Urtavlan är faktiskt ett diagram, och diagrammet uppdateras varje sekund för att visa tiden på dygnet. Onödigt, men kul.

Hur man använder OnTime Events och Keypress Events i Excel 2016 VBA

En analog klockapplikation.

Knapptryckningshändelser

Medan du arbetar övervakar Excel ständigt vad du skriver. På grund av detta kan du ställa in saker så att en tangenttryckning eller en tangentkombination exekverar en procedur.

Här är ett exempel som omtilldelar tangenterna PgDn och PgUp:

Sub Setup_OnKey()
  Application.OnKey "{PgDn}", "PgDn_Sub"
  Application.OnKey "{PgUp}", "PgUp_Sub"
Avsluta Sub
Sub PgDn_Sub()
  Vid fel Resume Next
  ActiveCell.Offset(1, 0).Aktivera
Avsluta Sub
Sub PgUp_Sub()
  Vid fel Resume Next
  ActiveCell.Offset(-1, 0).Aktivera
Avsluta Sub

Efter att ha ställt in OnKey-händelserna genom att utföra Setup_OnKey-proceduren, trycker du på PgDn för att flytta dig ner en rad. Genom att trycka på PgUp flyttas du upp en rad.

Observera att nyckelkoderna är omgivna av klammerparenteser, inte inom parentes. För en fullständig lista över tangentbordskoder, se hjälpsystemet. Sök efter OnKey.

I det här exemplet används On Error Resume Next för att ignorera eventuella fel som genereras. Till exempel, om den aktiva cellen är i den första raden, orsakar ett försök att flytta upp en rad ett fel som säkert kan ignoreras. Och om ett diagramblad är aktivt finns det ingen aktiv cell.

Genom att utföra följande rutin avbryter du OnKey-händelserna:

Sub Cancel_OnKey()
  Application.OnKey "{PgDn}"
  Application.OnKey "{PgUp}"
Avsluta Sub

Med användning av en tom sträng som det andra argumentet för OnKey metoden betyder inte avbryta OnKey händelse. Snarare får det Excel att helt enkelt ignorera tangenttryckningen. Följande sats säger till exempel att Excel ska ignorera Alt+F4. Procenttecknet representerar Alt-tangenten:

  Application.OnKey "%{F4}", ""

Även om du kan använda OnKey-metoden för att tilldela en genvägsknapp för att köra ett makro, bör du använda dialogrutan Makroalternativ för den här uppgiften.

Om du stänger arbetsboken som innehåller koden och lämnar Excel öppet, kommer OnKey-metoden inte att återställas. Som en konsekvens kommer att trycka på genvägstangenten göra att Excel automatiskt öppnar filen med makrot. För att förhindra att detta händer bör du inkludera kod i din Workbook_BeforeClose-händelsekod för att återställa OnKey-händelsen.

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]