Panelek befagyasztása VBA használatával
Nemrégiben közzétettem a Freezing panes alkalmazást az Excelben, a következőképpen teheti meg a VBA használatával:
Sorok befagyasztása
Sorok ("1: 1"). Válassza az ActiveWindow.FreezePanes = True lehetőséget
Oszlopok befagyasztása
Tartomány ("A: A"). Válassza az ActiveWindow.FreezePanes = True értéket
Sorok és oszlopok befagyasztása
Tartomány ("B2"). Válassza az ActiveWindow.FreezePanes = True értéket
Falak feloldása
ActiveWindow.FreezePanes = Hamis
Kényszerítse a munkafüzetet, hogy mentse a befagyasztási ablakokat
Az Excel lehetővé teszi, hogy eseményeken keresztül irányítsuk a dolgokat. Ez a cikk nem részletes vita arról, hogy mik az események vagy azok jellemzői. Ehelyett egy példát ad a WorkBook eseményre. Ezek olyan események, amelyeket a munkafüzet szintjén tartanak, nem pedig egy adott munkalapot.
A VBA segítségével szabályozhatjuk, hogy mi történik bizonyos eseményeken, például nyomtatás előtt vagy mentés előtt. Az egyik gyakori probléma, amellyel szembesülök, hogy számos ember, akikkel dolgozom, nem szereti a fájlokat, amelyeken Freeze Panes van.
Tehát ebben a cikkben összeállítunk néhány kódot, amely ellenőrzi, hogy a Freeze Panes be van -e kapcsolva, és ha igen, akkor nem menti a fájlt. Ez azt jelenti, hogy fagyasztás nélkül kell mentenem - kollégáimat boldognak tartva !!
A munkafüzet -eseményeknél az a legfontosabb, hogy azokat a megfelelő helyre - a munkafüzet szintjén - kell menteni.
A munkafüzet szintjének eléréséhez kövesse az alábbi lépéseket:
1. Kattintson jobb gombbal egy Excel -munkafüzetre - nézze meg a kódot:
2. Ez felhozza:
3. Kattintson duplán a „Ez a munkafüzet” elemre, majd válassza ki a „Munkafüzet” elemet a bal oldali első legördülő menüből:
Látjuk, hogy a bal oldali érték most „Megnyitás” -ra változott - néhány kóddal a munkafüzet nyitott eseményéhez. Ez a kód határozza meg, hogy mi történik a munkafüzet első megnyitásakor.
Szeretnénk azonban irányítani, hogy mi történjen a munkafüzet mentésekor. Tehát változtassa meg a jobb oldali legördülő menüt a „Mentés előtt” lehetőségre. A képernyő most így fog kinézni:
Most a következő kódot illesztjük be a nyilatkozat után:
Ha ActiveWindow.FreezePanes = Igaz, akkor az MsgBox "A panelek befagyasztása be van kapcsolva - a fájl nincs mentve" Mégse = Igaz vége, ha
Így a teljes kód most így néz ki:
Privát almunkafüzet_BeforeSave (ByVal SaveAsUI Booleanként, Mégsem Booleanként) Ha ActiveWindow.FreezePanes = True Akkor az MsgBox "Freeze Panes be van kapcsolva - a fájl NEM MENTETT" Mégse = True End If End Sub
Most mentse el a fájlt, majd aktiválja a Freeze Panes -t bármely ablakban. Ezután - Mentse a fájlt. Megjelenik egy üzenetküldő doboz, amelyben kijelenti, hogy a „Freeze Panes” be van kapcsolva - és a fájl nincs mentve.
Valójában a fájl nem mentődik, amíg a Freeze Panes eltávolításra nem kerül.