Постоје случајеви када не желите да корисник затвори Екцел радну свеску без уношења одређеног податка. У овим ситуацијама, било би корисно ускратити кориснику могућност да затвори радну свеску док се циљна ћелија не попуни (као што је приказано овде). Овде долази овај сјајни макро.
Спречите затварање док се одређена ћелија не попуни.
Како функционише макро
Овај код се покреће догађајем ПреЦлосе радне свеске. Када покушате да затворите радну свеску, овај догађај се покреће и покреће код унутар. Овај макро проверава да ли је циљна ћелија (ћелија Ц7, у овом случају) празна. Ако је празан, процес затварања се отказује. Ако Ц7 није празан, радна свеска се чува и затвара:
Приватна под радна свеска_БефореЦлосе(Откажи као Боолеан)
„Корак 1: Проверите да ли је ћелија Ц7 празна
Иф Схеетс("Схеет1").Ранге("Ц7").Валуе = " Онда
„Корак 2: Ако је ћелија празна, откажите затварање и реците кориснику
Откажи = Тачно
МсгБок "Ћелија Ц7 не може бити празна"
„Корак 3: Ако ћелија није празна, сачувајте је и затворите
Иначе
АцтивеВоркбоок.Цлосе СавеЦхангес:=Тачно
Крај Ако
Енд Суб
Корак 1 проверава да ли је Ц7 празан.
Ако је Ц7 празан, корак 2 ступа на снагу, отказујући процес затварања преношењем Труе на Откажи логички. Корак 2 такође активира оквир са поруком који обавештава корисника о његовој или њеној глупости (па, није баш тако грубо, заиста).
У кораку 3, ако ћелија Ц7 није празна, радна свеска се чува и затвара.
Како користити макро
Да бисте применили овај макро, потребно је да га копирате и налепите у прозор кода догађаја Воркбоок_БефореЦлосе. Постављање макроа овде омогућава да се покрене сваки пут када покушате да затворите радну свеску:
Активирајте Висуал Басиц Едитор притиском на Алт+Ф11.
У прозору пројекта пронађите назив свог пројекта/радне свеске и кликните на знак плус поред њега да бисте видели све листове.
Кликните на ову радну свеску.
У падајућој листи Догађај изаберите догађај Пре затварања.
Откуцајте или налепите код у новокреирани модул.
Унесите свој код у догађај Воркбоок БефореЦлосе.