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.