Rūsu iesaldēšana, izmantojot VBA
Es nesen ievietoju Excel sasalšanas rūtis, lūk, kā to izdarīt, izmantojot VBA:
Iesaldēt rindas
Rindas ("1: 1"). Atlasiet ActiveWindow.FreezePanes = True
Iesaldēt kolonnas
Diapazons ("A: A"). Atlasiet ActiveWindow.FreezePanes = True
Iesaldēt rindas un kolonnas
Diapazons ("B2"). Atlasiet ActiveWindow.FreezePanes = True
Atsaldēt rūtis
ActiveWindow.FreezePanes = Nepareizi
Piespiediet darbgrāmatu ietaupīt bez iesaldēšanas rūtīm
Excel ļauj mums kontrolēt lietas, izmantojot notikumus. Šis raksts nav detalizēta diskusija par notikumiem vai to iezīmēm. Tā vietā ir sniegts darbgrāmatas notikuma piemērs. Tie ir notikumi, kas notiek darbgrāmatas līmenī, nevis noteiktā darblapā.
Izmantojot VBA, mēs varam kontrolēt, kas notiek noteiktos notikumos, piemēram, pirms drukāšanas vai pirms saglabāšanas. Viena bieži sastopama problēma ir tā, ka daudziem cilvēkiem, ar kuriem es strādāju, nepatīk faili ar iesaldēšanas rūtīm.
Tāpēc šajā rakstā mēs apkoposim kodu, kas pārbaudīs, vai iesaldēšanas paneļi ir ieslēgti, un, ja tā, tas failu nesaglabās. Tas nozīmē, ka man tas ir jāsaglabā bez iesaldēšanas rūtīm - lai kolēģi būtu laimīgi !!
Vissvarīgākais darbgrāmatas notikumos ir tas, ka tie jāsaglabā pareizajā vietā - darbgrāmatas līmenī.
Lai piekļūtu darbgrāmatas līmenim, veiciet tālāk norādītās darbības.
1. Ar peles labo pogu noklikšķiniet uz Excel darbgrāmatas - skatiet kodu:
2. Tas parādīs:
3. Veiciet dubultklikšķi uz “Šī darbgrāmata” un pēc tam kreisajā pusē esošajā pirmajā nolaižamajā izvēlnē atlasiet “Darbgrāmata”:
Mēs redzam, ka kreisās puses vērtība tagad ir mainīta uz “Atvērt” - ar kādu kodu darbgrāmatas atvēršanas notikumam. Šis kods ļaus mums noteikt, kas notiek, kad darbgrāmata tiek atvērta pirmo reizi.
Tomēr mēs vēlamies kontrolēt, kas notiek, saglabājot darbgrāmatu. Tāpēc mainiet labās puses nolaižamo izvēlni uz “Pirms saglabāšanas”. Tagad ekrāns izskatīsies šādi:
Tagad pēc deklarācijas ievietojam šādu kodu:
Ja ActiveWindow.FreezePanes = True, tad MsgBox "Freeze Panes ir ieslēgts - fails netiek saglabāts" Atcelt = True End Ja
Tātad viss kods tagad izskatās šādi:
Privāta apakšdarbgrāmata_BeforeSave (ByVal SaveAsUI kā Būla, Atcelt kā Būla) Ja ActiveWindow.FreezePanes = True, tad MsgBox "Iesaldēšanas rūts ir ieslēgta - fails nav saglabāts" Atcelt = Patiess beigas Ja beigas
Tagad saglabājiet failu un pēc tam jebkurā logā aktivizējiet Freeze Panes. Pēc tam - ATGLABĀT failu. Parādīsies ziņojumapmaiņa, kurā teikts, ka ir ieslēgta “Freeze Panes” - un fails nav saglabāts.
Patiešām, fails netiks saglabāts, kamēr netiks noņemtas Freeze Panes.