Sådan bruges OnTime-begivenheder og tastetrykbegivenheder i Excel 2016 VBA

Der er to typer hændelser, du kan bruge i VBA-programmering til Excel 2016, som ikke er knyttet til objekter: tid og tastetryk. Fordi tid og tastetryk ikke er knyttet til et bestemt objekt, såsom en projektmappe eller et regneark, programmerer du disse hændelser i et normalt VBA-modul.

OnTime-begivenheden

OnTime-hændelsen opstår, når et bestemt tidspunkt på dagen indtræffer. Følgende eksempel viser, hvordan du får Excel til at udføre en procedure, når hændelsen kl. 15.00 indtræffer. I dette tilfælde fortæller en robotstemme dig, at du skal vågne op, ledsaget af en beskedboks:

Sub SetAlarm()
  Application.OnTime 0.625, "DisplayAlarm"
Slut Sub
Sub DisplayAlarm()
  Application.Speech.Speak ("Hey, vågn op")
  MsgBox “ Det er tid til din eftermiddagspause!”
Slut Sub

I dette eksempel bruges OnTime-metoden for Application-objektet. Denne metode tager to argumenter: klokkeslættet (0,625 eller 15:00) og navnet på den underprocedure, der skal udføres, når tidshændelsen indtræffer (DisplayAlarm).

Denne procedure er ganske nyttig, hvis du har tendens til at blive så optaget af dit arbejde, at du glemmer møder og aftaler. Indstil bare en OnTime-begivenhed for at minde dig selv.

De fleste har svært ved at tænke på tid i forhold til Excel-nummereringssystemet. Derfor vil du måske bruge VBA TimeValue-funktionen til at repræsentere tiden. TimeValue konverterer en streng, der ligner en tid, til en værdi, som Excel kan håndtere. Følgende erklæring viser en nemmere måde at programmere en begivenhed til kl. 15:00:

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

Hvis du vil planlægge en begivenhed i forhold til det aktuelle tidspunkt (for eksempel 20 minutter fra nu), kan du bruge en erklæring som denne:

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

Du kan også bruge OnTime-metoden til at køre en VBA-procedure på en bestemt dag. Du skal sikre dig, at din computer bliver ved med at køre, og at projektmappen med proceduren holdes åben. Følgende erklæring kører DisplayAlarm-proceduren kl. 17.00 den 31. december 2016:

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

Denne særlige kodelinje kan være nyttig til at advare dig om, at du skal hjem og gøre dig klar til nytårsfestlighederne.

Her er et andet eksempel, der bruger OnTime-begivenheden. Udførelse af UpdateClock-procedurerne skriver tiden til celle A1 og programmerer også en anden hændelse fem sekunder senere. Denne hændelse kører UpdateClock-proceduren igen. Nettoeffekten er, at celle A1 opdateres med den aktuelle tid hvert femte sekund. For at stoppe begivenhederne skal du udføre StopClock-proceduren (som annullerer begivenheden). Bemærk, at NextTick er en variabel på modulniveau, der gemmer tidspunktet for den næste begivenhed.

Dæmp NextTick As Date
Sub UpdateClock()
' Opdaterer celle A1 med det aktuelle klokkeslæt
  ThisWorkbook.Sheets(1).Range(“A1”) = Tid
' Konfigurer den næste begivenhed fem sekunder fra nu
  NextTick = Now + TimeValue(“00:00:05”)
  Application.OnTime NextTick, "UpdateClock"
Slut Sub
Sub StopClock()
' Annullerer OnTime-begivenheden (stopper uret)
  Ved fejl Genoptag Næste
  Application.OnTime NextTick, “UpdateClock”, , False
Slut Sub

OnTime-hændelsen fortsætter, selv efter at projektmappen er lukket. Med andre ord, hvis du lukker projektmappen uden at køre StopClock-proceduren, vil projektmappen genåbne sig selv om fem sekunder (forudsat at Excel stadig kører). For at forhindre dette skal du bruge en Workbook_BeforeClose-hændelsesprocedure, der indeholder følgende sætning:

Ring til StopClock

OnTime-metoden har to yderligere argumenter. Hvis du planlægger at bruge denne metode, bør du henvise til hjælpesystemet for fuldstændige detaljer.

Hvis du gerne vil se en ret kompliceret applikation, så tjek denne analoge urapplikation. Urskiven er faktisk et diagram, og diagrammet opdateres hvert sekund for at vise tidspunktet på dagen. Ubrugeligt, men sjovt.

Sådan bruges OnTime-begivenheder og tastetrykbegivenheder i Excel 2016 VBA

En analog ur-applikation.

Tastetryk begivenheder

Mens du arbejder, overvåger Excel konstant, hvad du skriver. På grund af dette kan du indstille tingene, så et tastetryk eller en tastekombination udfører en procedure.

Her er et eksempel, der omtildeler PgDn- og PgUp-tasterne:

Sub Setup_OnKey()
  Application.OnKey "{PgDn}", "PgDn_Sub"
  Application.OnKey "{PgUp}", "PgUp_Sub"
Slut Sub
Sub PgDn_Sub()
  Ved fejl Genoptag Næste
  ActiveCell.Offset(1, 0).Aktiver
Slut Sub
Sub PgUp_Sub()
  Ved fejl Genoptag Næste
  ActiveCell.Offset(-1, 0).Aktiver
Slut Sub

Efter opsætning af OnKey-begivenheder ved at udføre Setup_OnKey-proceduren, flyttes du én række ned, når du trykker på PgDn. Ved at trykke på PgUp flyttes du en række op.

Bemærk, at nøglekoderne er omgivet af klammeparenteser, ikke i parentes. Se hjælpesystemet for at få en komplet liste over tastaturkoder. Søg efter OnKey.

I dette eksempel bruges On Error Resume Next til at ignorere eventuelle fejl, der genereres. For eksempel, hvis den aktive celle er i den første række, forårsager forsøg på at flytte en række op en fejl, som sikkert kan ignoreres. Og hvis et diagramark er aktivt, er der ingen aktiv celle.

Ved at udføre følgende rutine annullerer du OnKey-begivenhederne:

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

Brug af en tom streng som det andet argument for OnKey-metoden annullerer ikke OnKey-hændelsen. Snarere får det Excel til blot at ignorere tastetrykket. For eksempel fortæller følgende sætning Excel at ignorere Alt+F4. Procenttegnet repræsenterer Alt-tasten:

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

Selvom du kan bruge OnKey-metoden til at tildele en genvejstast til at udføre en makro, bør du bruge dialogboksen Makroindstillinger til denne opgave.

Hvis du lukker projektmappen, der indeholder koden, og lader Excel være åben, nulstilles OnKey-metoden ikke. Som en konsekvens heraf vil et tryk på genvejstasten få Excel til automatisk at åbne filen med makroen. For at forhindre dette i at ske, bør du inkludere kode i din Workbook_BeforeClose-hændelseskode for at nulstille OnKey-hændelsen.


Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows Microsoft Word åbner filer i skrivebeskyttet tilstand, hvilket gør det umuligt at redigere det? Bare rolig, metoderne er nedenfor

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes fejl ved udskrivning af forkerte Microsoft Word-dokumenter Fejl ved udskrivning af Word-dokumenter med ændrede skrifttyper, rodede afsnit, manglende tekst eller tabt indhold er ret almindelige. Men lad være

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Hvis du har brugt pennen eller highlighteren til at tegne på dine PowerPoint-dias under en præsentation, kan du gemme tegningerne til næste præsentation eller slette dem, så næste gang du viser den, starter du med rene PowerPoint-dias. Følg disse instruktioner for at slette pen- og highlighter-tegninger: Sletning af linjer en ved […]

Indhold af stilbibliotek i SharePoint 2010

Indhold af stilbibliotek i SharePoint 2010

Style-biblioteket indeholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og billeder, der bruges af foruddefinerede mastersider, sidelayouts og kontrolelementer i SharePoint 2010. For at finde CSS-filer i Style-biblioteket på et udgivelsessted: Vælg Site Actions→ View Alt webstedsindhold. Indholdet af webstedet vises. Style-biblioteket ligger i […]

Formater tal i tusinder og millioner i Excel-rapporter

Formater tal i tusinder og millioner i Excel-rapporter

Overvæld ikke dit publikum med gigantiske tal. I Microsoft Excel kan du forbedre læsbarheden af ​​dine dashboards og rapporter ved at formatere dine tal, så de vises i tusinder eller millioner.

Sådan deler og følger du SharePoint-websteder

Sådan deler og følger du SharePoint-websteder

Lær, hvordan du bruger SharePoints sociale netværksværktøjer, der lader enkeltpersoner og grupper kommunikere, samarbejde, dele og forbinde.

Sådan konverteres datoer til julianske formater i Excel

Sådan konverteres datoer til julianske formater i Excel

Julianske datoer bruges ofte i produktionsmiljøer som et tidsstempel og hurtig reference for et batchnummer. Denne type datokodning giver detailhandlere, forbrugere og serviceagenter mulighed for at identificere, hvornår et produkt blev fremstillet, og dermed produktets alder. Julianske datoer bruges også i programmering, militæret og astronomi. Forskellige […]

Sådan opretter du en Access Web App

Sådan opretter du en Access Web App

Du kan oprette en webapp i Access 2016. Så hvad er en webapp overhovedet? Nå, web betyder, at det er online, og app er kun en forkortelse for "applikation". En Custom Web App er en online databaseapplikation, der tilgås fra skyen ved hjælp af en browser. Du bygger og vedligeholder webappen i desktopversionen […]

Hurtig startlinje i SharePoint 2010

Hurtig startlinje i SharePoint 2010

De fleste sider i SharePoint 2010 viser en liste over navigationslinks på linjen Hurtig start langs venstre side af siden. Hurtig startlinjen viser links til fremhævet webstedsindhold såsom lister, biblioteker, websteder og udgivelsessider. Hurtigstartlinjen indeholder to meget vigtige links: Linket Alt webstedsindhold: […]

Hvad betyder Solver-fejlmeddelelserne i Excel?

Hvad betyder Solver-fejlmeddelelserne i Excel?

Ved simple problemer finder Solver i Excel som regel hurtigt de optimale Solver-variableværdier for objektivfunktionen. Men i nogle tilfælde har Solver problemer med at finde de Solver-variableværdier, der optimerer objektivfunktionen. I disse tilfælde viser Solver typisk en meddelelse eller en fejlmeddelelse, der beskriver eller diskuterer det problem, der […]