Slik bruker du OnTime-hendelser og tastetrykkhendelser i Excel 2016 VBA

Det er to typer hendelser du kan bruke i VBA-programmering for Excel 2016 som ikke er knyttet til objekter: tid og tastetrykk. Fordi tid og tastetrykk ikke er knyttet til et bestemt objekt, for eksempel en arbeidsbok eller et regneark, programmerer du disse hendelsene i en vanlig VBA-modul.

OnTime-arrangementet

OnTime-hendelsen oppstår når en bestemt tid på dagen inntreffer. Følgende eksempel viser hvordan du får Excel til å utføre en prosedyre når 15.00-hendelsen inntreffer. I dette tilfellet ber en robotstemme deg om å våkne, ledsaget av en meldingsboks:

Sub SetAlarm()
  Application.OnTime 0.625, "DisplayAlarm"
End Sub
Sub DisplayAlarm()
  Application.Speech.Speak ("Hei, våkn opp")
  MsgBox “ Det er tid for ettermiddagspausen!”
End Sub

I dette eksemplet brukes OnTime-metoden til Application-objektet. Denne metoden tar to argumenter: klokkeslettet (0,625 eller 15:00) og navnet på Sub-prosedyren som skal utføres når tidshendelsen inntreffer (DisplayAlarm).

Denne prosedyren er ganske nyttig hvis du har en tendens til å bli så opptatt av arbeidet ditt at du glemmer møter og avtaler. Bare still inn en OnTime-hendelse for å minne deg selv på det.

De fleste synes det er vanskelig å tenke på tid i form av Excel-nummereringssystemet. Derfor kan det være lurt å bruke VBA TimeValue-funksjonen til å representere tiden. TimeValue konverterer en streng som ser ut som en tid til en verdi som Excel kan håndtere. Følgende uttalelse viser en enklere måte å programmere et arrangement til kl. 15:00:

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

Hvis du vil planlegge en hendelse i forhold til gjeldende tid (for eksempel 20 minutter fra nå), kan du bruke en uttalelse som denne:

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

Du kan også bruke OnTime-metoden til å kjøre en VBA-prosedyre på en bestemt dag. Du må sørge for at datamaskinen fortsetter å kjøre og at arbeidsboken med prosedyren holdes åpen. Følgende uttalelse kjører DisplayAlarm-prosedyren kl. 17.00 31. desember 2016:

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

Denne spesielle kodelinjen kan være nyttig for å advare deg om at du må gå hjem og gjøre deg klar for nyttårsaften.

Her er et annet eksempel som bruker OnTime-hendelsen. Utførelse av UpdateClock-prosedyrene skriver tiden til celle A1 og programmerer også en annen hendelse fem sekunder senere. Denne hendelsen kjører UpdateClock-prosedyren på nytt. Nettoeffekten er at celle A1 oppdateres med gjeldende tid hvert femte sekund. For å stoppe hendelsene, utfør StopClock-prosedyren (som avbryter hendelsen). Merk at NextTick er en variabel på modulnivå som lagrer tiden for neste hendelse.

Demp NextKick som dato
Sub UpdateClock()
' Oppdaterer celle A1 med gjeldende tid
  ThisWorkbook.Sheets(1).Range(“A1”) = Tid
' Sett opp neste hendelse fem sekunder fra nå
  NextTick = Nå + Tidsverdi(“00:00:05”)
  Application.OnTime NextKick av, "UpdateClock"
End Sub
Sub StopClock()
' Avbryter OnTime-hendelsen (stopper klokken)
  Ved feil på Fortsett neste
  Application.OnTime NextKick av, "UpdateClock", , False
End Sub

OnTime-hendelsen vedvarer selv etter at arbeidsboken er lukket. Med andre ord, hvis du lukker arbeidsboken uten å kjøre StopClock-prosedyren, vil arbeidsboken åpne seg på nytt om fem sekunder (forutsatt at Excel fortsatt kjører). For å forhindre dette, bruk en Workbook_BeforeClose-hendelsesprosedyre som inneholder følgende setning:

Ring StopClock

OnTime-metoden har ytterligere to argumenter. Hvis du planlegger å bruke denne metoden, bør du se hjelpesystemet for fullstendige detaljer.

Hvis du vil se en ganske komplisert applikasjon, sjekk ut denne analoge klokkeapplikasjonen. Urskiven er faktisk et diagram, og diagrammet oppdateres hvert sekund for å vise klokkeslettet. Ubrukelig, men morsomt.

Slik bruker du OnTime-hendelser og tastetrykkhendelser i Excel 2016 VBA

En analog klokkeapplikasjon.

Tastetrykk hendelser

Mens du jobber, overvåker Excel hele tiden hva du skriver. På grunn av dette kan du sette opp ting slik at et tastetrykk eller en tastekombinasjon utfører en prosedyre.

Her er et eksempel som tildeler PgDn- og PgUp-tastene på nytt:

Sub Setup_OnKey()
  Application.OnKey «{PgDn}», «PgDn_Sub»
  Application.OnKey «{PgUp}», «PgUp_Sub»
End Sub
Sub PgDn_Sub()
  Ved feil på Fortsett neste
  ActiveCell.Offset(1, 0).Aktiver
End Sub
Sub PgUp_Sub()
  Ved feil på Fortsett neste
  ActiveCell.Offset(-1, 0).Aktiver
End Sub

Etter å ha satt opp OnKey-hendelsene ved å utføre Setup_OnKey-prosedyren, trykker du på PgDn for å flytte deg ned en rad. Ved å trykke PgUp flyttes du opp en rad.

Legg merke til at nøkkelkodene er omgitt av klammeparenteser, ikke i parentes. For en fullstendig liste over tastaturkoder, se hjelpesystemet. Søk etter OnKey.

I dette eksemplet brukes On Error Resume Next for å ignorere eventuelle feil som genereres. For eksempel, hvis den aktive cellen er i den første raden, vil forsøk på å flytte opp en rad forårsake en feil som trygt kan ignoreres. Og hvis et diagramark er aktivt, er det ingen aktiv celle.

Ved å utføre følgende rutine kansellerer du OnKey-hendelsene:

Sub Cancel_OnKey()
  Application.OnKey «{PgDn}»
  Application.OnKey «{PgUp}»
End Sub

Ved å bruke en tom streng som andre argument for onkey metoden ikke avbryte onkey arrangementet. Snarere får det Excel til å ignorere tastetrykket. Følgende setning ber for eksempel Excel om å ignorere Alt+F4. Prosenttegnet representerer Alt-tasten:

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

Selv om du kan bruke OnKey-metoden til å tilordne en snarvei for å utføre en makro, bør du bruke dialogboksen Makroalternativer for denne oppgaven.

Hvis du lukker arbeidsboken som inneholder koden og lar Excel være åpen, vil ikke OnKey-metoden bli tilbakestilt. Som en konsekvens vil et trykk på hurtigtasten føre til at Excel automatisk åpner filen med makroen. For å forhindre at dette skjer, bør du inkludere kode i Workbook_BeforeClose-hendelseskoden for å tilbakestille OnKey-hendelsen.


Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows

Hvordan blokkere Microsoft Word fra å åpne filer i skrivebeskyttet modus på Windows Microsoft Word åpner filer i skrivebeskyttet modus, noe som gjør det umulig å redigere dem? Ikke bekymre deg, metodene er nedenfor

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Hvordan fikse feil utskrift av Microsoft Word-dokumenter

Slik fikser du feil ved utskrift av feil Microsoft Word-dokumenter Feil ved utskrift av Word-dokumenter med endrede fonter, rotete avsnitt, manglende tekst eller tapt innhold er ganske vanlig. Men ikke gjør det

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Slett penn- og highlighter-tegninger på PowerPoint-lysbilder

Hvis du har brukt pennen eller merkepennen til å tegne på PowerPoint-lysbildene dine under en presentasjon, kan du lagre tegningene til neste presentasjon eller slette dem, slik at du neste gang du viser dem starter med rene PowerPoint-lysbilder. Følg disse instruksjonene for å slette penn- og merkepenntegninger: Slette linje én på […]

Style Library-innhold i SharePoint 2010

Style Library-innhold i SharePoint 2010

Stilbiblioteket inneholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og bilder som brukes av forhåndsdefinerte mastersider, sideoppsett og kontroller i SharePoint 2010. For å finne CSS-filer i stilbiblioteket til et publiseringsnettsted: Velg Site Actions→ View Alt innhold på nettstedet. Innholdet på nettstedet vises. Style-biblioteket ligger i […]

Formater tall i tusenvis og millioner i Excel-rapporter

Formater tall i tusenvis og millioner i Excel-rapporter

Ikke overveld publikum med gigantiske tall. I Microsoft Excel kan du forbedre lesbarheten til dashbordene og rapportene dine ved å formatere tallene dine slik at de vises i tusenvis eller millioner.

Hvordan dele og følge SharePoint-nettsteder

Hvordan dele og følge SharePoint-nettsteder

Lær hvordan du bruker SharePoints sosiale nettverksverktøy som lar enkeltpersoner og grupper kommunisere, samarbeide, dele og koble til.

Hvordan konvertere datoer til julianske formater i Excel

Hvordan konvertere datoer til julianske formater i Excel

Julianske datoer brukes ofte i produksjonsmiljøer som et tidsstempel og hurtigreferanse for et batchnummer. Denne typen datokoding lar forhandlere, forbrukere og serviceagenter identifisere når et produkt ble laget, og dermed alderen på produktet. Julianske datoer brukes også i programmering, militæret og astronomi. Forskjellig […]

Hvordan lage en Access Web App

Hvordan lage en Access Web App

Du kan lage en nettapp i Access 2016. Så hva er en nettapp egentlig? Vel, nettet betyr at det er online, og appen er bare en forkortelse for "applikasjon". En Custom Web App er en online databaseapplikasjon som du får tilgang til fra skyen ved hjelp av en nettleser. Du bygger og vedlikeholder nettappen i skrivebordsversjonen […]

Hurtigstartlinje i SharePoint 2010

Hurtigstartlinje i SharePoint 2010

De fleste sidene i SharePoint 2010 viser en liste over navigasjonskoblinger på hurtigstartlinjen langs venstre side av siden. Hurtigstartlinjen viser koblinger til innhold på nettstedet som lister, biblioteker, nettsteder og publiseringssider. Hurtigstartlinjen inneholder to svært viktige lenker: Linken for alt nettstedinnhold: […]

Hva betyr løserfeilmeldingene i Excel?

Hva betyr løserfeilmeldingene i Excel?

For enkle problemer finner Solver i Excel vanligvis raskt de optimale Solver-variabelverdiene for objektivfunksjonen. Men i noen tilfeller har Solver problemer med å finne Solver-variabelverdiene som optimerer objektivfunksjonen. I disse tilfellene viser Solver vanligvis en melding eller en feilmelding som beskriver eller diskuterer problemet som […]