En Excel Macro for å hindre arbeidsbøker fra Closing

Det er tider når du ikke ønsker en bruker stenge ut en Excel arbeidsbok uten å legge inn en bestemt del av data. I slike situasjoner vil det være nyttig å nekte brukeren muligheten til å lukke arbeidsboken til målcellen er fylt ut (som vist her). Det er der denne kjekk liten makro kommer inn.
Forhindre lukking til en bestemt celle er befolket.
Hvordan makro verk

Denne koden er utløst av arbeidsboken sin BeforeClose hendelsen. Når du prøver å lukke arbeidsboken, denne hendelsen branner, kjører koden innenfor. Denne makro sjekker for å se om target celle (celle C7, i dette tilfellet) er tom. Hvis det er tomt, er det nære prosessen avbrytes. Hvis C7 er ikke tom, vil arbeidsboken lagres og lukkes:
Private Sub Workbook_BeforeClose (Cancel As Boolean) "Trinn 1:. Sjekk om celle C7 er blankIf Sheets (" Ark1 ") Range (" C7 "). value = "" Then'Step 2: Hvis cellen er tom, avbryte nært og fortelle brukeren Avbryt = True MsgBox "Cell C7 kan ikke være blank" "Trinn 3: Hvis cellen ikke er tom, lagre og closeElse ActiveWorkbook.Close Savechanges: = TrueEnd IfEnd Sub

Trinn 1 sjekker for å se om C7 er blank.

Hvis C7 er tomt, tar Trinn 2 effekt, avbryter nær prosessen ved å sende Tro mot Avbryt boolsk. Trinn 2 aktiverer også en meldingsboks som varsler brukeren om hans eller hennes dumhet (vel, det er ikke fullt så tøffe, egentlig).

I trinn 3, hvis celle C7 ikke er tom, arbeidsboken lagres og lukkes .

Hvordan bruke makro

For å implementere denne makroen, må du kopiere og lime den inn i Workbook_BeforeClose hendelsen kodevinduet. Plassere makro her gjør det mulig å kjøre hver gang du prøver å lukke arbeidsboken.

  • Aktiver Visual Basic Editor ved å trykke Alt + F11

    I prosjektvinduet, finn ditt prosjekt arbeidsbok navn /og klikk på plusstegnet ved siden av den for å se alle arkene.

    Klikk Thisworkbook.

    I tilfelle rullegardinlisten velger BeforeClose event .

    Skriv eller lim inn koden i den nyopprettede modulen.
    Tast inn koden din i arbeidsbok BeforeClose hendelsen.