Makro presenteres her er en utmerket måte å beskytte brukere mot utilsiktet lukking deres filen før du lagrer. Når implementert, sikrer dette makro som Excel lagrer arbeidsboken automatisk før du lukker den.
Excel vil normalt advare brukere som prøver å lukke et ulagret arbeidsbok, gi dem en mulighet til å spare før stengetid. Imidlertid kan mange brukere blåse forbi advarselen og utilsiktet klikker Nei, forteller Excel for å lukke uten å lagre. Med denne makroen, er du beskytte mot dette ved å automatisk spare før stengetid.
Hvordan makro verk
Koden er utløst av arbeidsboken sin BeforeClose hendelsen. Når du prøver å lukke arbeidsboken, denne hendelsen branner, kjører koden innenfor. The crux av koden er enkel - den ber brukerne om de ønsker å lukke arbeidsboken. Makro deretter vurderer om brukeren klikket OK eller Avbryt.
Meldingen du ser når du prøver å lukke arbeidsboken.
Evalueringen er gjort med en Select sak uttalelse. Select-sak uttalelsen er et alternativ til If-Then-Else uttalelse, slik at du kan utføre tilstandskontroll i dine makroer. Den grunnleggende konstruksjonen av en Select sak uttalelsen er enkel:
Velg Veske < noen uttrykk for å sjekke > saken er = < noen verdi > < gjøre noe > saken er = < en annen verdi > < gjøre noe annet > saken er = < noen tredje verdi > < gjøre noen tredje ting > End Select
Med en Select sak uttalelse, kan du utføre mange betingede sjekker. I dette tilfellet er du bare sjekker for OK eller Avbryt. Ta en titt på koden:
Private Sub Workbook_BeforeClose (Cancel As Boolean) "Trinn 1: Aktiver meldingsboksen og start sjekke Select sak MsgBox ("? Lagre og lukk ", vbOKCancel)« Trinn 2: Avbryt-knappen trykkes , så avbryter nær saken er = vbCancel Cancel = True'Step 3: OK-knappen trykkes, så lagre arbeidsboken og lukke saken er = vbOK ActiveWorkbook.Save'Step 4: Lukk din Velg sak statementEnd SelectEnd Sub
I trinn 1 aktiverer du meldingsboksen som tilstanden sjekk for Select sak uttalelse. Du bruker vbOKCancel argument for å sikre at OK og Avbryt presenteres som valg.
I trinn 2, hvis brukeren klikker Avbryt i meldingsboksen, forteller makro Excel å avbryte Workbook_Close arrangementet ved å sende Tro Avbryt-boolsk.
Hvis brukeren klikket på OK-knappen i meldingsboksen, trinn 3 trer i kraft. Her forteller deg Excel til å lagre arbeidsboken. Og fordi du ikke setter Avbryt boolsk til True, fortsetter Excel med nær.
I trinn 4, du bare lukke ut Velg sak uttalelse. Hver gang du bruke et Select Case, må du lukke den ut med en tilsvarende End Select.
Hvordan bruke makro
For å implementere denne makroen, må du kopiere og lime den inn i Workbook_BeforeClose hendelsen kode vinduet. Plassere makro det gjør det mulig å kjøre hver gang du prøver å lukke arbeidsboken.
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.