Čia pateikta makrokomanda yra puikus būdas apsaugoti vartotojus nuo netyčinio failo uždarymo prieš išsaugant. Įdiegta ši makrokomanda užtikrina, kad „Excel“ automatiškai išsaugos darbaknygę prieš ją uždarant.
„Excel“ paprastai įspės vartotojus, kurie bando uždaryti neišsaugotą darbaknygę, suteikdama jiems galimybę išsaugoti prieš uždarant. Tačiau daugelis vartotojų gali nepastebėti įspėjimo ir netyčia spustelėti Ne, liepdami „Excel“ uždaryti neišsaugojus. Naudodami šią makrokomandą nuo to apsaugote automatiškai išsaugodami prieš uždarydami.
Kaip veikia makrokomandas
Kodą suaktyvina darbaknygės įvykis BeforeClose. Kai bandote uždaryti darbaknygę, šis įvykis suaktyvinamas, paleidžiant kodą. Kodo esmė paprasta – jis klausia vartotojų, ar jie nori uždaryti darbaknygę. Tada makrokomanda įvertina, ar vartotojas spustelėjo Gerai ar Atšaukti.
Pranešimas, kurį matote bandydami uždaryti darbaknygę.
Vertinimas atliekamas naudojant Select Case pareiškimą. Teiginys Select Case yra teiginio If-Then-Else alternatyva, leidžianti atlikti makrokomandų sąlygų patikras. Pagrindinė teiginio Select Case konstrukcija yra paprasta:
Pasirinkite Case
Atvejis yra =
Byla yra =
Byla yra =
Pabaigos pasirinkimas
Naudodami teiginį Select Case galite atlikti daugybę sąlyginių patikrinimų. Tokiu atveju jūs tiesiog patikrinate Gerai arba Atšaukti. Pažvelkite į kodą:
Privati antrinė darbo knyga_Prieš uždarymą (Atšaukti kaip Būlio)
„1 veiksmas: suaktyvinkite pranešimo laukelį ir pradėkite tikrinimą
Pasirinkite Case MsgBox ("Išsaugoti ir uždaryti?", vbOKCancel)
„2 veiksmas: paspaustas atšaukimo mygtukas, todėl atšaukite uždarymą
Case Is = vbCancel
Atšaukti = Tiesa
3 veiksmas: paspaustas mygtukas Gerai, todėl išsaugokite darbaknygę ir uždarykite
Case Is = vbOK
ActiveWorkbook.Save
4 veiksmas: uždarykite pareiškimą Select Case
Pabaigos pasirinkimas
Pabaigos sub
Atlikdami 1 veiksmą, suaktyvinate pranešimo laukelį kaip pareiškimo Select Case sąlygos patikrinimą. Naudojate argumentą vbOKCancel, kad užtikrintumėte, jog mygtukai Gerai ir Atšaukti būtų pateikti kaip pasirinkimai.
Jei 2 veiksme vartotojas pranešimo laukelyje spustelėjo Atšaukti, makrokomanda nurodo „Excel“ atšaukti įvykį „Workbook_Close“, perduodant „True“ į Atšaukti Būlio reikšmę.
Jei vartotojas pranešimo laukelyje spustelėjo mygtuką Gerai, įsigalioja 3 veiksmas. Čia nurodote „Excel“ išsaugoti darbaknygę. Ir kadangi jūs nenustatėte Atšaukti Būlio reikšmės į True, „Excel“ tęsia uždarymą.
4 veiksme tiesiog uždarykite pareiškimą Select Case. Kiekvieną kartą, kai sukuriate pasirinkimo atvejį, turite jį uždaryti atitinkamu pabaigos pasirinkimu.
Kaip naudoti makrokomandą
Norėdami įdiegti šią makrokomandą, turite nukopijuoti ir įklijuoti ją į įvykio kodo langą Workbook_BeforeClose. Įdėjus makrokomandą, ji bus paleista kiekvieną kartą, kai bandote uždaryti darbaknygę:
Suaktyvinkite Visual Basic redaktorių paspausdami Alt + F11.
Projekto lange raskite savo projekto / darbaknygės pavadinimą ir spustelėkite šalia jo esantį pliuso ženklą, kad pamatytumėte visus lapus.
Spustelėkite ThisWorkbook.
Išskleidžiamajame sąraše Įvykis pasirinkite įvykį BeforeClose.
Įveskite arba įklijuokite kodą naujai sukurtame modulyje.
Įveskite savo kodą į įvykį Workbook BeforeClose.