Udalosti WorkBook - nešetrite pomocou zmrazovacích panelov - príklady kódu VBA

Ukotviť tabule pomocou VBA

Nedávno som uverejnil príspevok o Zmrazovacích paneloch v programe Excel, ako to môžete urobiť pomocou VBA:

Zmraziť riadky

 Riadky ("1: 1"). Vyberte ActiveWindow.FreezePanes = True 

Zmraziť stĺpce

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

Ukotviť riadky a stĺpce

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

Rozmraziť panely

 ActiveWindow.FreezePanes = False 

Vynútte zošit, aby šetril bez zmrazenia panelov

Excel nám umožňuje ovládať veci prostredníctvom udalostí. Tento článok nie je podrobnou diskusiou o tom, aké sú udalosti alebo ich vlastnosti. Namiesto toho uvádza príklad udalosti WorkBook. Ide o udalosti, ktoré sa konajú skôr na úrovni zošita než o konkrétny pracovný list.

Prostredníctvom VBA môžeme ovládať, čo sa stane pri určitých udalostiach, napríklad pred tlačou alebo pred uložením. Jeden z bežných problémov, s ktorými sa stretávam, je ten, že viacerým ľuďom, s ktorými pracujem, sa nepáčia súbory, na ktorých sú zmrazené panely.

V tomto článku teda dáme dohromady nejaký kód, ktorý skontroluje, či sú zapnuté funkcie Freeze Panes, a ak áno, súbor neuloží. To znamená, že ho musím uložiť bez zamrznutia tabúľ - aby boli moji kolegovia spokojní !!

Najdôležitejšie na udalostiach zošita je, že by mali byť uložené na správnom mieste - na úrovni zošita.

Ak sa chcete dostať na úroveň zošita, postupujte takto:

1. Kliknite pravým tlačidlom myši na zošit programu Excel - zobrazte kód:

2. Zobrazí sa toto:

3. Dvakrát kliknite na „Tento zošit“ a potom v prvom rozbaľovacom zozname na ľavej strane vyberte „WorkBook“:

Vidíme, že hodnota na ľavej strane sa teraz zmenila na „Otvorené“ - s nejakým kódom pre udalosť Otvorenie zošita. Tento kód nám umožní určiť, čo sa stane pri prvom otvorení zošita.

Chceme však ovládať, čo sa stane, keď zošit uložíme. Zmeňte teda rozbaľovaciu ponuku pravej ruky na možnosť „Pred uložením“. Obrazovka bude teraz vyzerať takto:

Teraz za deklaráciu vložíme nasledujúci kód:

Ak ActiveWindow.FreezePanes = True, potom MsgBox „Zmrazené panely sú zapnuté - súbor nie je uložený“ Zrušiť = Skutočný koniec, ak

Takže celý kód teraz vyzerá 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

Teraz súbor uložte a POTOM v ľubovoľnom okne aktivujte Freeze Panes. Potom - ULOŽTE súbor. Zobrazí sa okno s hlásením, že je zapnutá funkcia „Zmraziť panely“ - a súbor sa neuloží.

Súbor sa skutočne neuloží, kým neodstránite Freeze Panes.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave