Það eru tímar þegar þú vilt ekki að notandi loki Excel vinnubók án þess að slá inn ákveðin gögn. Í þessum aðstæðum væri gagnlegt að neita notandanum um möguleikann á að loka vinnubókinni þar til markreiturinn er fylltur út (eins og sýnt er hér). Þetta er þar sem þetta sniðuga macro kemur inn.

Komið í veg fyrir lokun þar til ákveðinn hólf er fylltur.
Hvernig macro virkar
Þessi kóði er settur af stað af BeforeClose atburði vinnubókarinnar. Þegar þú reynir að loka vinnubókinni kviknar þetta atvik og keyrir kóðann innan. Þessi fjölvi athugar hvort markreiturinn (reitur C7, í þessu tilfelli) sé tómur. Ef það er tómt er lokaferlinu hætt. Ef C7 er ekki tómt er vinnubókin vistuð og lokuð:
Private Sub Workbook_BeforeClose(Hætta við sem Boolean)
'Skref 1: Athugaðu hvort klefi C7 er auður
If Sheets("Sheet1").Range("C7").Value = " Þá
'Skref 2: Ef reiturinn er auður skaltu hætta við lokunina og segja notandanum frá því
Hætta við = satt
MsgBox "Cell C7 getur ekki verið auð"
'Skref 3: Ef reiturinn er ekki auður skaltu vista og loka
Annar
ActiveWorkbook.Close SaveChanges:=True
End If
End Sub
Skref 1 athugar hvort C7 sé auður.
Ef C7 er auður tekur skref 2 gildi og hættir við lokunarferlinu með því að senda True til Cancel Boolean. Skref 2 virkjar líka skilaboðareit sem lætur notandann vita af heimsku sinni (jæja, það er ekki alveg svo harkalegt, í raun).
Í skrefi 3, ef reit C7 er ekki auður, er vinnubókin vistuð og lokuð.
Hvernig á að nota macro
Til að útfæra þetta fjölvi þarftu að afrita og líma það inn í Workbook_BeforeClose atburðakóðagluggann. Með því að setja makróið hér getur það keyrt í hvert skipti sem þú reynir að loka vinnubókinni:
Virkjaðu Visual Basic Editor með því að ýta á Alt+F11.
Í verkefnaglugganum, finndu nafn verkefnisins/vinnubókarinnar og smelltu á plúsmerkið við hliðina á því til að sjá öll blöðin.
Smelltu á This Workbook.
Í fellilistanum Atburður skaltu velja BeforeClose viðburðinn.
Sláðu inn eða límdu kóðann í nýstofnaða einingu.

Sláðu inn kóðann þinn í Workbook BeforeClose atburðinum.