Paneelide külmutamine VBA abil
Hiljuti postitasin Exceli paanide külmutamisele, kuidas seda VBA abil teha:
Ridade külmutamine
Ridad ("1: 1"). Valige ActiveWindow.FreezePanes = Tõsi
Külmuta veerud
Vahemik ("A: A"). Valige ActiveWindow.FreezePanes = Tõsi
Külmutage read ja veerud
Vahemik ("B2"). Valige ActiveWindow.FreezePanes = Tõsi
Klaaside vabastamine
ActiveWindow.FreezePanes = Vale
Sundida töövihik ilma külmutuspaneelideta kokku hoidma
Excel võimaldab meil sündmuste kaudu asju juhtida. See artikkel ei ole üksikasjalik arutelu sündmuste või nende omaduste üle. Selle asemel toob see näite töövihiku sündmusest. Need on üritused, mis toimuvad pigem töövihiku tasemel kui konkreetse töölehena.
VBA kaudu saame kontrollida, mis juhtub teatud sündmustel, näiteks enne printimist või enne salvestamist. Üks levinud probleem, millega ma silmitsi seisan, on see, et paljudele inimestele, kellega ma töötan, ei meeldi failid, millel on külmutuspaneelid.
Seega paneme selles artiklis kokku koodi, mis kontrollib, kas külmutuspaneelid on sisse lülitatud ja kui jah, siis see faili ei salvesta. See tähendab, et pean selle salvestama ilma külmutusklaasideta - hoides oma kolleege õnnelikuna !!
Töövihikuürituste puhul on kõige tähtsam see, et need tuleks salvestada õigesse kohta - töövihiku tasemel.
Töövihiku tasemele pääsemiseks toimige järgmiselt.
1. Paremklõpsake Exceli töövihikut - vaadake koodi:
2. See avab:
3. Topeltklõpsake „See töövihik” ja seejärel valige vasakpoolses esimeses rippmenüüs „Töövihik”:
Näeme, et vasakpoolsel küljel olev väärtus on nüüd muutunud „Avatud” - koos mõne töövihiku avatud sündmuse koodiga. See kood võimaldab meil kindlaks teha, mis juhtub töövihiku esmakordsel avamisel.
Siiski tahame kontrollida, mis juhtub töövihiku salvestamisel. Seega muutke parema käe rippmenüü valikule „Enne salvestamist”. Ekraan näeb nüüd välja selline:
Nüüd sisestame deklaratsiooni järele järgmise koodi:
Kui ActiveWindow.FreezePanes = Tõsi, siis on MsgBox "Külmutuspaneelid sisse lülitatud - faili ei salvestata" Tühista = Tõene lõpp Kui
Nii et täielik kood näeb nüüd välja selline:
Private Sub Workbook_BeforeSave (ByVal SaveAsUI kui Boolean, Cancel as Boolean) Kui ActiveWindow.FreezePanes = True Siis MsgBox "Külmutuspaneelid on sisse lülitatud - faili EI SALVESTA" Tühista = Tõeline lõpp, kui alamosa
Nüüd salvestage fail ja seejärel aktiveerige mis tahes aknas külmutuspaneelid. Seejärel - LASTA fail. Ilmub sõnumikast, milles öeldakse, et paneelide külmutamine on sisse lülitatud ja faili ei salvestata.
Tõepoolest, faili ei salvestata enne, kui külmutuspaneelid on eemaldatud.