Exceli VBA näited: sissejuhatavate sündmuste näited

Kui proovite Excel VBA-st hästi aru saada , võiksite selle visuaalse põhioskuse arendamiseks tõenäoliselt kasu tuua mõnest näitest. Siit leiate mõned Exceli VBA näited, et saaksite sellest sündmuste haldamise ärist aru saada.

Exceli VBA näide: töövihiku avamise sündmus

Üks kõige sagedamini kasutatavaid Exceli VBA sündmusi on töövihiku avamise sündmus. Oletagem, et teil on töövihik, mida kasutate iga päev. Selle näite protseduur Workbook_Open käivitatakse iga kord, kui töövihik avatakse. Protseduur kontrollib nädalapäeva; kui on reede, kuvab kood teile meeldetuletussõnumi.

Exceli VBA protseduuri loomiseks, mis käivitatakse alati, kui töövihiku avamise sündmus ilmneb, toimige järgmiselt.

Avage Exceli töövihik.
Iga Exceli töövihik sobib.

VBE aktiveerimiseks vajutage Alt+F11.

Otsige projekti aknast üles töövihik.

Vajadusel topeltklõpsake projekti nimel, et kuvada selle üksused.

Topeltklõpsake üksust ThisWorkbook.
VBE kuvab ThisWorkbook objekti jaoks tühja koodiakna.

Valige aknas Koodi ripploendist Objekt (vasakul) valik Töövihik.
VBE sisestab protseduuri Workbook_Open algus- ja lõpulaused.

Sisestage järgmised avaldused, et kogu sündmuse protseduur näeks välja järgmine:

Privaatne alamtöövihik_Open()
  Hämarda sõnum stringina
  Kui nädalapäev (praegu) = 6, siis
    Msg = "Täna on reede. Ärge unustage"
    Msg = Sõnum & "esita TPS-i aruanne!"
    Sõnumikasti sõnum
  Lõpeta Kui
Lõpeta alam

Koodi aken peaks välja nägema selline.

Exceli VBA näited: sissejuhatavate sündmuste näited

See sündmuste töötleja protseduur käivitatakse töövihiku avamisel.

Töövihik_Open käivitatakse automaatselt, kui töövihik avatakse. See kasutab nädalapäeva määramiseks VBA WeekDay funktsiooni. Kui on reede (6. päev), tuletab sõnumikast kasutajale meelde aruande esitamist. Kui pole reede, ei juhtu midagi.

Kui täna pole reede, võib teil olla raske seda protseduuri testida. Saate lihtsalt muuta 6, et see vastaks tänasele tegelikule päevanumbrile.

Ja loomulikult saate seda protseduuri muuta mis tahes viisil. Näiteks järgmises versioonis kuvatakse teade iga kord, kui töövihik avatakse. See muutub mõne aja pärast tüütuks.

Protseduur Workbook_Open saab teha peaaegu kõike. Neid sündmuste käitlejaid kasutatakse sageli järgmistel eesmärkidel.

  • Tervitusteadete kuvamine (nagu Franki lahedas töövihikus)
  • Teiste töövihikute avamine
  • Konkreetse töölehe aktiveerimine töövihikus
  • Kohandatud kiirmenüüde seadistamine

Siin on viimane Exceli VBA näide protseduurist Workbook_Open, mis kasutab GetSetting ja SaveSetting funktsioone, et jälgida, mitu korda töövihikut on avatud. Funktsioon SaveSetting kirjutab väärtuse Windowsi registrisse ja funktsioon GetSetting hangib selle väärtuse (üksikasju vaadake spikrisüsteemist). Järgmine Exceli VBA näide hangib loendi registrist, suurendab seda ja salvestab selle seejärel tagasi registrisse. Samuti ütleb see kasutajale Cnt väärtuse, mis vastab töövihiku avamiskordade arvule.

Privaatne alamtöövihik_Open()
  Dim Cnt As Long
  Cnt = GetSetting ("Minu rakendus", "Seaded", "Ava", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Settings", "Open", Cnt
  MsgBox "See töövihik on avatud " & Cnt & " korda."
Lõpeta alam

Exceli VBA näited: sissejuhatavate sündmuste näited

Sündmuste töötleja Workbook_Open kasutamine, et jälgida, mitu korda töövihikut on avatud.

Exceli VBA näide: töövihiku sündmus BeforeClose

Siin on näide Exceli VBA töövihiku_BeforeClose sündmusehalduri protseduurist, mis käivitatakse automaatselt vahetult enne töövihiku sulgemist. See protseduur asub ThisWorkbook objekti koodiaknas:

Privaatne alamtöövihik_BeforeClose (Tühista kui Boolean)
  Hämarda sõnum stringina
  Dim Ans As Long
  Dim FName stringina
  Msg = "Kas soovite sellest failist varukoopia teha?"
  Ans = MsgBox (SMS, vbYesNo)
  Kui Ans = vbJah Siis
    FName = "F:\BACKUP\" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  Lõpeta Kui
Lõpeta alam

See rutiin kasutab sõnumikasti, et küsida kasutajalt, kas ta soovib teha töövihikust varukoopia. Kui vastus on jaatav, kasutab kood meetodit SaveCopyAs, et salvestada faili varukoopia draivi F. Kui kohandate seda protseduuri enda tarbeks, peate muutma draivi ja teed.

Exceli programmeerijad kasutavad enda järelt koristamiseks sageli protseduuri Workbook_BeforeClose. Näiteks kui kasutate töövihiku avamisel mõningate sätete muutmiseks protseduuri Workbook_Open (näiteks olekuriba peitmine), on asjakohane ainult töövihiku sulgemisel seadete algolekusse naasmine. Seda elektroonilist majapidamist saate teha protseduuriga Workbook_BeforeClose.

Kui kasutate sündmust Workbook_BeforeClose, pidage meeles järgmist: kui sulgete Exceli ja mõnda avatud faili on pärast viimast salvestamist muudetud, kuvab Excel oma tavalist teatekasti "Kas soovite muudatused salvestada". Nupul Loobu klõpsamine tühistab kogu sulgemisprotsessi. Kuid sündmus Workbook_BeforeClose on niikuinii käivitatud.

Exceli VBA näide: enne salvestamist sündmus töövihiku jaoks

Sündmus BeforeSave, nagu selle nimigi ütleb, käivitatakse enne töövihiku salvestamist. See sündmus leiab aset, kui valite Fail → Salvesta või Fail → Salvesta nimega.

Järgnev protseduur, mis on paigutatud kood akna jaoks ThisWorkbook objekti, näitab BeforeSave sündmus. Rutiin värskendab väärtust lahtris (lahter A1 lehel Sheet1) iga kord, kui töövihik salvestatakse. Teisisõnu toimib lahter A1 loendurina, et jälgida faili salvestamise kordade arvu.

Privaatne alamtöövihik_BeforeSave(ByVal SaveAsUI _
  Booleanina, Tühista kui Boolean)
  Dim Counter as Range
  Set Counter = Sheets("Sheet1").Range("A1")
  Counter.Value = loendur.Väärtus + 1
Lõpeta alam

Pange tähele, et protseduuril Workbook_BeforeSave on kaks argumenti: SaveAsUI ja Cancel. Nende argumentide toimimise demonstreerimiseks uurige järgmist makrot, mis käivitatakse enne töövihiku salvestamist. See protseduur püüab takistada kasutajal töövihikut teise nimega salvestamast. Kui kasutaja valib Fail → Salvesta nimega, on SaveAsUI argument tõene.

Kui kood käivitub, kontrollib see SaveAsUI väärtust. Kui see muutuja on Tõene, kuvab protseduur teate ja määrab Cancel väärtuseks Tõene, mis tühistab toimingu Salvesta.

Privaatne alamtöövihik_BeforeSave(ByVal SaveAsUI _
  Booleanina, Tühista kui Boolean)
  Kui SaveAsUI Siis
    MsgBox "Te ei saa selle töövihiku koopiat salvestada!"
  Tühista = Tõene
  Lõpeta Kui
Lõpeta alam

Pange tähele, et see protseduur ei takista tegelikult kellelgi teise nimega koopiat salvestamast. Kui keegi tõesti tahab seda teha, võib ta lihtsalt avada töövihiku, kui makrod on keelatud. Kui makrod on keelatud, keelatakse ka sündmuste töötleja protseduurid, mis on mõistlik, kuna need on lõppude lõpuks makrod.

Leave a Comment

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

Uurige kümmet nõuannet Microsoft Teamsiga parema koosolekukogemuse saamiseks, sealhulgas märkmete tegemine, tausta hägustamine, vaigistamine ja koosolekute salvestamine.

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Lühikeses Word 2013 dokumendis saate kommentaare hõlpsalt sirvida ja uurida. Siit leiate samm-sammult, kuidas kommentaare lugeda ja eemaldada.

Kuidas parandada Word 2016 tavalist malli

Kuidas parandada Word 2016 tavalist malli

Mõnikord varitseb kurjus selles, mis peaks olema Word 2016 peamises mõistlikkuse hoidlas: tavalises mallifailis. Õpi, kuidas taastada normaalne mall ja eemaldada probleemid.

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s, et luua selgem ja professionaalsem ilme. Meie juhend aitab sul lihtsasti navigeerida Wordi funktsioonide kaudu ja tutvustab esimeses reas taande ning rippuva taande lisamise viise.

Kuidas Outlook 2016-s uusi kiireid samme luua

Kuidas Outlook 2016-s uusi kiireid samme luua

Lisaks kuuele kiirtoimingule, mis kuvatakse Outlooki esmakordsel installimisel, on teil valida veelgi rohkemate Quick Step mallide hulgast.

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kui olete esitluse ajal PowerPointi slaididele joonistamiseks kasutanud pliiatsit või markerit, saate joonised järgmise esitluse jaoks salvestada või need kustutada, nii et järgmisel näitamisel alustate puhaste PowerPointi slaididega. Pliiatsi ja markeri jooniste kustutamiseks järgige neid juhiseid: joonte kustutamine […]

Stiili teegi sisu rakenduses SharePoint 2010

Stiili teegi sisu rakenduses SharePoint 2010

Style'i teek sisaldab CSS-faile, XSL-faile ja eelmääratletud mallilehtede, lehepaigutuste ja juhtelementide poolt kasutatavaid pilte rakenduses SharePoint 2010. CSS-failide leidmiseks avaldamissaidi stiiliteegist: valige saidi toimingud → vaade. Kogu saidi sisu. Ilmub saidi sisu. Style raamatukogu asub […]

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Ärge uputage oma publikut tohutute numbritega. Microsoft Excelis saate parandada oma armatuurlaudade ja aruannete loetavust, vormindades numbrid tuhandetes või miljonites.

Kuidas SharePointi saite jagada ja jälgida

Kuidas SharePointi saite jagada ja jälgida

Siit saate teada, kuidas kasutada SharePointi suhtlusvõrgustiku tööriistu, mis võimaldavad üksikisikutel ja rühmadel suhelda, koostööd teha, jagada ja ühendada.

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Julia kuupäevi kasutatakse tootmiskeskkondades sageli ajatemplina ja partiinumbri kiirviitena. Seda tüüpi kuupäevade kodeerimine võimaldab jaemüüjatel, tarbijatel ja teenindusagentidel tuvastada toote valmistamise aja ja seega toote vanuse. Juliuse kuupäevi kasutatakse ka programmeerimises, sõjaväes ja astronoomias. Erinevad […]