WorkBook -begivenheder - Gem ikke med Freeze Panes - eksempler på VBA -kode

Frys ruder ved hjælp af VBA

Jeg har for nylig lagt ud på Frysepaneler i Excel, sådan kan du gøre det ved hjælp af VBA:

Frys rækker

 Rækker ("1: 1"). Vælg ActiveWindow.FreezePanes = True 

Frys kolonner

 Område ("A: A"). Vælg ActiveWindow.FreezePanes = True

Frys rækker og kolonner

 Område ("B2"). Vælg ActiveWindow.FreezePanes = True

Frigør ruder

 ActiveWindow.FreezePanes = Falsk 

Tving arbejdsbogen til at gemme uden frysepaneler

Excel lader os styre tingene gennem begivenheder. Denne artikel er ikke en detaljeret diskussion om, hvad begivenheder er eller deres funktioner. I stedet giver det et eksempel på en WorkBook -begivenhed. Dette er begivenheder, der afholdes på projektmappeniveau i stedet for et bestemt regneark.

Gennem VBA kan vi styre, hvad der sker ved bestemte begivenheder, f.eks. Før udskrivning eller før lagring. Et almindeligt problem, jeg står over for, er, at en række mennesker, jeg arbejder med, ikke kan lide filer med Freeze Panes på.

Så i denne artikel vil vi sammensætte en kode, der kontrollerer, om Freeze Panes er tændt, og i så fald gemmer den ikke filen. Det betyder, at jeg skal gemme det uden at fryse ruder - holde mine kolleger glade !!

Det vigtigste ved projektmappehændelser er, at de skal gemmes det korrekte sted - på projektmappeniveau.

Følg nedenstående trin for at få adgang til projektmappens niveau:

1. Højreklik på en Excel -projektmappe - se kode:

2. Dette vil vise:

3. Dobbeltklik på "Denne projektmappe", og vælg derefter "Arbejdsbog" fra det første drop down i venstre side:

Vi ser, at værdien på venstre side nu er ændret til "Åbn" - med en vis kode til Workbook Open Event. Denne kode lader os bestemme, hvad der sker, når projektmappen åbnes for første gang.

Vi vil dog kontrollere, hvad der sker, når vi gemmer projektmappen. Så skift højre rullemenu til "Inden du gemmer". Skærmen vil nu se sådan ud:

Vi indsætter nu følgende kode efter erklæringen:

Hvis ActiveWindow.FreezePanes = True Så er MsgBox "Frysepaneler tændt - Filen IKKE GEMMET" Annuller = True End Hvis

Så den komplette kode nu ser ud:

Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, Cancel As Boolean) If ActiveWindow.FreezePanes = True Then MsgBox "Freeze Panes is on - File is NOT SAVED" Cancel = True End If End Sub

Gem nu filen, og aktiver derefter Frysepaneler i ethvert vindue. Derefter - GEM filen igen. Der vises en meddelelse om, at "Frys ruder" er tændt - og filen er ikke gemt.

Filen gemmes faktisk ikke, før Freeze Panes er fjernet.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave