Joskus et halua käyttäjän sulkevan Excel-työkirjan syöttämättä tiettyä dataa. Näissä tilanteissa olisi hyödyllistä estää käyttäjää sulkemasta työkirjaa, kunnes kohdesolu on täytetty (kuten tässä näkyy). Tässä tämä näppärä makro tulee esiin.
Estä sulkeminen, kunnes tietty solu on täytetty.
Kuinka makro toimii
Tämän koodin laukaisee työkirjan BeforeClose-tapahtuma. Kun yrität sulkea työkirjan, tämä tapahtuma käynnistyy ja suorittaa sisällä olevan koodin. Tämä makro tarkistaa, onko kohdesolu (tässä tapauksessa solu C7) tyhjä. Jos se on tyhjä, sulkemisprosessi peruuntuu. Jos C7 ei ole tyhjä, työkirja tallennetaan ja suljetaan:
Yksityinen alatyökirja_BeforeClose(Peruuta Boolean)
Vaihe 1: Tarkista, onko solu C7 tyhjä
Jos Sheets("Sheet1").Range("C7").Arvo = " Sitten
'Vaihe 2: Jos solu on tyhjä, peruuta sulkeminen ja kerro käyttäjälle
Peruuta = Totta
MsgBox "Solu C7 ei voi olla tyhjä"
'Vaihe 3: Jos solu ei ole tyhjä, tallenna ja sulje
Muu
ActiveWorkbook.Close SaveChanges:=Tosi
Loppu Jos
Lopeta ala
Vaihe 1 tarkistaa, onko C7 tyhjä.
Jos C7 on tyhjä, astuu voimaan vaihe 2, joka peruuttaa sulkemisprosessin välittämällä True-arvoksi Peruuta Boolen. Vaihe 2 aktivoi myös viestilaatikon, joka ilmoittaa käyttäjälle hänen tyhmyydestään (no, se ei todellakaan ole niin ankaraa).
Vaiheessa 3, jos solu C7 ei ole tyhjä, työkirja tallennetaan ja suljetaan.
Kuinka käyttää makroa
Jos haluat ottaa tämän makron käyttöön, sinun on kopioitava ja liitettävä se Workbook_BeforeClose-tapahtumakoodiikkunaan. Jos sijoitat makron tähän, se käynnistyy aina, kun yrität sulkea työkirjan:
Aktivoi Visual Basic Editor painamalla Alt+F11.
Etsi projektiikkunasta projektin/työkirjan nimi ja napsauta sen vieressä olevaa plusmerkkiä nähdäksesi kaikki taulukot.
Napsauta tätä työkirjaa.
Valitse avattavasta Tapahtuma-luettelosta BeforeClose-tapahtuma.
Kirjoita tai liitä koodi äskettäin luotuun moduuliin.
Kirjoita koodisi Workbook BeforeClose -tapahtumaan.