Kako samodejno zagnati makro, preden se delovni zvezek zapre v Excelu

Velikokrat želimo narediti nekaj vnaprej določenih in ponavljajočih se korakov, preden se delovni zvezek zapre. Na primer prekinitev povezav z bazo podatkov, brisanje podatkov smeti, zaščita delovnega zvezka, shranjevanje delovnega zvezka ali preprosto povedovanje uporabniku. To lahko storite z uporabo dogodkov delovnega zvezka v Excelu.

V tem članku bomo izvedeli, kako lahko zaženete makro, ko se delovni zvezek na najlažji način zapre.

Samodejni zagon makra, ko se delovni zvezek zapre

Za zagon makra ob zaprtju delovnega zvezka bomo uporabili delovni zvezek delovnega zvezka Workbook_BeforeClose. Sintaksa tega dogodka je naslednja.

Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Vaša koda tukaj. End Sub 

Če želite zapisati v dogodek delovnega zvezka, naredite to.

Odprite VBE z Alt+F11. Zdaj v raziskovalcu projektov poiščite delovni zvezek, v katerem želite imeti kodo. Zdaj pa najdi Ta delovni zvezek predmet v raziskovalcu projektov. Dvokliknite nanjo.

Zdaj lahko vidite dve, ki padajo nad območjem za kodiranje. Kliknite na prvo in izberite
Delovni zvezek. Zdaj so v desnem spustnem meniju prikazani vsi razpoložljivi dogodki, povezani z delovnim zvezkom. Kliknite nanjo in izberite BeforeClose. To bo zapisalo prazno podprogram delovni zvezek_BeforeClose na območju za kodiranje.

Tu je treba zapisati vso kodo, ki jo želite zagnati, preden se delovni zvezek zapre. V tem primeru lahko preprosto pokličete druge podprograme, napisane v katerem koli modulu. Ta koda bo sprožila dogodek, da izvede vse, kar je zapisano med tema dvema vrsticama.

Primer:

Z dogodkom Workbook_BeforeClose preverimo uporabnika in ga pozdravimo, ko se delovni zvezek odpre.

Private Sub Workbook_BeforeClose (Cancel As Boolean) ThisWorkbook.Save MsgBox "Ta delovni zvezek je shranjen." End Sub 

V to kodo lahko vnesete karkoli. Lahko celo pokličemo katero koli podprogram iz katerega koli modula v delovnem zvezku. Shranite delovni zvezek in enkrat zaženite kodo. Zdaj zaprite delovni zvezek. Delovni zvezek bo samodejno shranjen in prikazano bo sporočilo.

Private Sub Workbook_BeforeClose (Cancel As Boolean) Pokliči podprogram ShutDatabase, ki izklopi izvorno bazo podatkov End Sub 

Tako da, to je to. To je preprost način za samodejni zagon makra, ko se delovni zvezek zapre. Upam, da je bilo moje pisanje dovolj razlagalno in da vam je stran dobro služila. Če to ni pomagalo, napišite poizvedbo v spodnji odsek komentarjev. Na to bom odgovoril v najkrajšem možnem času.

Dogodki v delovnem zvezku z uporabo VBA v programu Microsoft Excel : Tu najdete vse dogodke v delovnem zvezku, ki jih je mogoče sprožiti za izvajanje posebne kode za določene dogodke.

Uporaba dogodka spremembe delovnega lista za zagon makra, ko pride do kakršne koli spremembe | Zato za zagon makra vsakič, ko se list posodobi, uporabljamo dogodke delovnega lista VBA.

Zaženite makro, če je na listu v določenem obsegu prišlo do kakršne koli spremembe | Če želite zagnati kodo makra, ko se vrednost v določenem obsegu spremeni, uporabite to kodo VBA. Zazna vsako spremembo v določenem obsegu in sproži dogodek.

Najpreprostejša koda VBA za označevanje trenutne vrstice in stolpca | S tem majhnim delčkom VBA označite trenutno vrstico in stolpec lista.

Priljubljeni članki:

50 bližnjic v Excelu za večjo produktivnost | Poskrbite, da bo vaša naloga hitrejša. Teh 50 bližnjic bo vaše delo v Excelu še pospešilo.

Funkcija VLOOKUP v Excelu | To je ena najpogosteje uporabljenih in priljubljenih funkcij programa Excel, ki se uporablja za iskanje vrednosti iz različnih obsegov in listov.

COUNTIF v Excelu 2016 | Štejte vrednosti s pogoji s to neverjetno funkcijo. Za štetje določenih vrednosti vam ni treba filtrirati podatkov. Funkcija Countif je bistvena za pripravo vaše armaturne plošče.

Kako uporabljati funkcijo SUMIF v Excelu | To je še ena bistvena funkcija armaturne plošče. To vam pomaga povzeti vrednosti za posebne pogoje.



Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave