Kartais nenorite, kad vartotojas uždarytų „Excel“ darbaknygę neįvesdamas konkretaus duomenų. Tokiose situacijose būtų naudinga neleisti vartotojui uždaryti darbaknygės, kol nebus užpildytas tikslinis langelis (kaip parodyta čia). Čia atsiranda ši puiki makrokomanda.
Neleiskite uždaryti, kol nebus užpildytas konkretus langelis.
Kaip veikia makrokomandas
Šį kodą suaktyvina darbaknygės įvykis BeforeClose. Kai bandote uždaryti darbaknygę, šis įvykis suaktyvinamas, paleidžiant kodą. Ši makrokomanda patikrina, ar tikslinė langelis (šiuo atveju C7 langelis) yra tuščias. Jei jis tuščias, uždarymo procesas atšaukiamas. Jei C7 nėra tuščias, darbaknygė išsaugoma ir uždaroma:
Privati antrinė darbo knyga_Prieš uždarymą (Atšaukti kaip Būlio)
„1 veiksmas: patikrinkite, ar langelis C7 tuščias
If Sheets("Sheet1").Range("C7").Value = " Tada
2 veiksmas: jei langelis tuščias, atšaukite uždarymą ir praneškite vartotojui
Atšaukti = Tiesa
MsgBox "C7 langelis negali būti tuščias"
3 veiksmas: jei langelis nėra tuščias, išsaugokite ir uždarykite
Kitas
ActiveWorkbook.Close SaveChanges:=Tiesa
Pabaiga, jei
Pabaigos sub
1 veiksmas patikrina, ar C7 yra tuščias.
Jei C7 yra tuščias, įsigalioja 2 veiksmas, atšaukiant uždarymo procesą, perduodant True į Atšaukti Būlio reikšmę. 2 veiksmas taip pat suaktyvina pranešimų laukelį, pranešantį vartotojui apie jo kvailumą (na, tai tikrai nėra tokia griežta).
3 veiksme, jei langelis C7 nėra tuščias, darbaknygė išsaugoma ir uždaroma.
Kaip naudoti makrokomandą
Norėdami įdiegti šią makrokomandą, turite nukopijuoti ir įklijuoti ją į įvykio kodo langą Workbook_BeforeClose. Įdėjus makrokomandą čia, 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.