Excel VBA-eksempler: Eksempler på indledende begivenheder

Hvis du prøver at få et godt greb om Excel VBA , kan du sandsynligvis drage fordel af et par eksempler for at udvikle den visuelle grundlæggende dygtighed. Her finder du et par Excel VBA-eksempler, så du kan få styr på denne begivenhedshåndteringsvirksomhed.

Excel VBA-eksempel: The Open-begivenhed for en projektmappe

En af de mest brugte Excel VBA-begivenheder er Workbook Open-begivenheden. Antag, at du har en projektmappe, som du bruger hver dag. Workbook_Open-proceduren i dette eksempel udføres, hver gang projektmappen åbnes. Proceduren kontrollerer ugedagen; hvis det er fredag, viser koden en påmindelse til dig.

Følg disse trin for at oprette Excel VBA-proceduren, der udføres, når hændelsen Workbook Open opstår:

Åbn Excel-projektmappen.
Enhver Excel-projektmappe duer.

Tryk på Alt+F11 for at aktivere VBE.

Find projektmappen i projektvinduet.

Dobbeltklik på projektnavnet for at vise dets elementer, hvis det er nødvendigt.

Dobbeltklik på punktet ThisWorkbook.
VBE'en viser et tomt kodevindue for ThisWorkbook-objektet.

I kodevinduet skal du vælge Arbejdsbog fra rullelisten Objekt (venstre).
VBE indtaster begyndelses- og slutsætningerne for en Workbook_Open-procedure.

Indtast følgende udsagn, så den komplette hændelsesprocedure ser sådan ud:

Privat underarbejdsbog_Åben()
  Dæmp besked som streng
  Hvis ugedag(nu) = 6, så
    Msg = "Det er fredag ​​i dag. Glem ikke at "
    Msg = Msg & "indsend TPS-rapporten!"
    MsgBox Msg
  Afslut Hvis
Slut Sub

Kodevinduet skulle se sådan ud.

Excel VBA-eksempler: Eksempler på indledende begivenheder

Denne hændelseshåndteringsprocedure udføres, når projektmappen åbnes.

Workbook_Open udføres automatisk, hver gang projektmappen åbnes. Den bruger VBA's WeekDay-funktion til at bestemme ugedagen. Hvis det er fredag ​​(dag 6), minder en beskedboks brugeren om at indsende en rapport. Hvis det ikke er fredag, sker der ikke noget.

Hvis i dag ikke er fredag, kan du have svært ved at teste denne procedure. Du kan bare ændre de 6, så de svarer til dagens faktiske dagnummer.

Og selvfølgelig kan du ændre denne procedure, som du vil. For eksempel viser følgende version en meddelelse, hver gang projektmappen åbnes. Dette bliver irriterende efter et stykke tid.

En Workbook_Open-procedure kan gøre næsten alt. Disse hændelseshandlere bruges ofte til følgende:

  • Viser velkomstbeskeder (såsom i Franks seje projektmappe)
  • Åbning af andre projektmapper
  • Aktivering af et bestemt regneark i projektmappen
  • Opsætning af brugerdefinerede genvejsmenuer

Her er et sidste Excel VBA-eksempel på en Workbook_Open-procedure, der bruger funktionerne GetSetting og SaveSetting til at holde styr på, hvor mange gange projektmappen er blevet åbnet. SaveSetting-funktionen skriver en værdi til Windows-registreringsdatabasen, og GetSetting-funktionen henter denne værdi (se hjælpesystemet for detaljer). Følgende Excel VBA-eksempel henter optællingen fra registreringsdatabasen, øger den og gemmer den derefter tilbage i registreringsdatabasen. Den fortæller også brugeren værdien af ​​Cnt, der svarer til det antal gange, projektmappen er blevet åbnet.

Privat underarbejdsbog_Åben()
  Dim Cnt As Long
  Cnt = GetSetting("MinApp", "Indstillinger", "Åben", 0)
  Cnt = Cnt + 1
  Gem Indstilling "MinApp", "Indstillinger", "Åbn", Cnt
  MsgBox "Denne projektmappe er blevet åbnet " & Cnt & " gange."
Slut Sub

Excel VBA-eksempler: Eksempler på indledende begivenheder

Brug af en Workbook_Open-hændelseshandler til at holde styr på, hvor mange gange en projektmappe er blevet åbnet.

Excel VBA-eksempel: Begivenheden BeforeClose for en projektmappe

Her er et eksempel på Excel VBA Workbook_BeforeClose hændelseshåndteringsproceduren, som udføres automatisk umiddelbart før projektmappen lukkes. Denne procedure er placeret i kodevinduet for et ThisWorkbook-objekt:

Privat underarbejdsbog_BeforeClose(Annuller som boolesk)
  Dæmp besked som streng
  Dim Ans As Long
  Dim F-navn som streng
  Msg = "Vil du lave en sikkerhedskopi af denne fil?"
  Ans = MsgBox(Msg, vbYesNo)
  Hvis Ans = vbJa Så
    FName = "F:\BACKUP\" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  Afslut Hvis
Slut Sub

Denne rutine bruger en beskedboks til at spørge brugeren, om han vil lave en sikkerhedskopi af projektmappen. Hvis svaret er ja, bruger koden SaveCopyAs-metoden til at gemme en sikkerhedskopi af filen på drev F. Hvis du tilpasser denne procedure til eget brug, skal du ændre drevet og stien.

Excel-programmører bruger ofte en Workbook_BeforeClose-procedure til at rydde op efter sig selv. For eksempel, hvis du bruger en Workbook_Open-procedure til at ændre nogle indstillinger, når du åbner en projektmappe (for eksempel skjuler statuslinjen), er det kun passende, at du returnerer indstillingerne til deres oprindelige tilstand, når du lukker projektmappen. Du kan udføre denne elektroniske husholdning med en Workbook_BeforeClose-procedure.

Når du bruger hændelsen Workbook_BeforeClose, skal du huske på dette: Hvis du lukker Excel, og en åben fil er blevet ændret siden sidste lagring, viser Excel dens sædvanlige "Vil du gemme dine ændringer"-meddelelsesboks. Hvis du klikker på knappen Annuller, annulleres hele lukningsprocessen. Men begivenheden Workbook_BeforeClose vil være blevet udført alligevel.

Excel VBA-eksempel: Begivenheden BeforeSave for en projektmappe

Begivenheden BeforeSave, som navnet antyder, udløses, før en projektmappe gemmes. Denne hændelse opstår, når du vælger Fil → Gem eller Fil → Gem som.

Følgende procedure, som er placeret i kodevinduet for en ThisWorkbook objekt, viser BeforeSave begivenhed. Rutinen opdaterer værdien i en celle (celle A1 på Ark1), hver gang projektmappen gemmes. Med andre ord fungerer celle A1 som en tæller til at holde styr på antallet af gange, filen blev gemt.

Privat underarbejdsbog_BeforeSave(ByVal SaveAsUI _
  Som boolsk, annuller som boolsk)
  Dæmp tæller som rækkevidde
  Indstil tæller = Sheets("Sheet1"). Range("A1")
  Counter.Value = Counter.Value + 1
Slut Sub

Bemærk, at Workbook_BeforeSave-proceduren har to argumenter: SaveAsUI og Cancel. For at demonstrere, hvordan disse argumenter virker, skal du undersøge følgende makro, som udføres, før projektmappen gemmes. Denne procedure forsøger at forhindre brugeren i at gemme projektmappen med et andet navn. Hvis brugeren vælger Filer → Gem som, er SaveAsUI-argumentet True.

Når koden køres, tjekker den SaveAsUI-værdien. Hvis denne variabel er Sand, viser proceduren en meddelelse og indstiller Annuller til Sand, hvilket annullerer handlingen Gem.

Privat underarbejdsbog_BeforeSave(ByVal SaveAsUI _
  Som boolsk, annuller som boolsk)
  Hvis SaveAsUI Så
    MsgBox "Du kan ikke gemme en kopi af denne projektmappe!"
  Annuller = Sandt
  Afslut Hvis
Slut Sub

Bemærk, at denne procedure ikke rigtig forhindrer nogen i at gemme en kopi med et andet navn. Hvis nogen virkelig vil gøre det, kan han eller hun bare åbne projektmappen med makroer deaktiveret. Når makroer er deaktiveret, deaktiveres hændelseshåndteringsprocedurer også, hvilket giver mening, fordi de trods alt er makroer.


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 […]