Události WorkBook - neukládejte pomocí zmrazovacích panelů - příklady kódu VBA

Zmrazte panely pomocí VBA

Nedávno jsem zveřejnil zprávu o zmrazení podoken v aplikaci Excel, jak to můžete provést pomocí VBA:

Zmrazit řádky

 Řádky („1: 1“). Vyberte ActiveWindow.FreezePanes = True 

Ukotvit sloupce

 Rozsah ("A: A"). Vyberte ActiveWindow.FreezePanes = True

Ukotvit řádky a sloupce

 Rozsah („B2“). Vyberte ActiveWindow.FreezePanes = True

Rozmrazit panely

 ActiveWindow.FreezePanes = False 

Vynucení sešitu k uložení bez zmrazení podoken

Excel nám umožňuje ovládat věci prostřednictvím událostí. Tento článek není podrobnou diskusí o tom, jaké jsou události nebo jejich funkce. Místo toho uvádí příklad události WorkBook. Jedná se o události, které se konají spíše na úrovni sešitu než na konkrétním listu.

Prostřednictvím VBA můžeme řídit, co se stane při určitých událostech, například před tiskem nebo před uložením. Jedním z běžných problémů, se kterými se potýkám, je to, že řada lidí, se kterými pracuji, nemá ráda soubory, na kterých jsou Freeze Panes.

V tomto článku tedy dáme dohromady nějaký kód, který zkontroluje, zda je zapnutá funkce Freeze Panes, a pokud ano, soubor neuloží. To znamená, že to musím uložit bez zmrazení tabulek - aby byli moji kolegové šťastní !!

Nejdůležitější na událostech sešitu je, že by měly být uloženy na správném místě - na úrovni sešitu.

Chcete -li se dostat na úroveň sešitu, postupujte takto:

1. Klikněte pravým tlačítkem na sešit aplikace Excel - zobrazte kód:

2. Zobrazí se:

3. Dvakrát klikněte na „Tento sešit“ a poté z prvního rozevíracího seznamu na levé straně vyberte „Sešit“:

Vidíme, že hodnota na levé straně se nyní změnila na „Otevřít“ - s nějakým kódem pro událost Otevření sešitu. Tento kód nám umožní určit, co se stane při prvním otevření sešitu.

Chceme však řídit, co se stane, když sešit uložíme. Změňte tedy rozevírací seznam pravé ruky na „Před uložením“. Obrazovka nyní bude vypadat takto:

Nyní za deklaraci vložíme následující kód:

Pokud ActiveWindow.FreezePanes = True Then MsgBox "Freeze Panes is on - File is NOT SAVED" Cancel = True End If

Takže celý kód nyní vypadá takto:

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

Nyní soubor uložte a POTOM v libovolném okně aktivujte Freeze Panes. Poté - ULOŽTE soubor. Zobrazí se okno msgbox s oznámením, že je zapnuto „Freeze Panes“ - a soubor není uložen.

Soubor se skutečně neuloží, dokud neodstraníte Freeze Panes.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave