Programmā Excel jūs, iespējams, strādājat ar datiem, kas ir tik sensitīvi, ka vēlaties saglabāt katru reizi, kad tiek mainīta noteikta šūna vai šūnu diapazons. Šis makro ļauj definēt šūnu diapazonu, kuru mainot, darbgrāmata ir jāsaglabā.
Parādītajā piemērā vēlaties, lai darbgrāmata tiktu saglabāta, kad tiek veikta rediģēšana jebkurā diapazona C5:C16 šūnā.
Mainot šūnu C5:C16, darbgrāmata ir jāsaglabā.
Kā darbojas makro
Šī koda noslēpums ir krustošanās metode. Tā kā jūs nevēlaties saglabāt darblapu, kad tiek mainīta kāda veca šūna, izmantojiet krustošanas metodi, lai noteiktu, vai mērķa šūna (šūna, kas mainījusies) krustojas ar diapazonu, kas norādīts kā sprūda diapazons (šajā gadījumā C5:C16). .
Metode Intersect atgriež vienu no divām lietām: diapazona objektu, kas nosaka krustpunktu starp diviem norādītajiem diapazoniem, vai neko. Tātad būtībā jums ir jāmet mērķa šūna pret Intersect metodi, lai pārbaudītu vērtību Nothing. Tajā brīdī varat izlemt, vai saglabāt darbgrāmatu.
Private Sub Worksheet_Change (ByVal Target As Range)
1. darbība: vai mainītais diapazons krustojas?
Ja krustojums (mērķis, diapazons ("C5: C16")) nav nekas, tad
'2. darbība. Ja nav krustojuma, veiciet izbraukšanas procedūru
Iziet Sub
3. darbība. Ja ir krustojums, saglabājiet darbgrāmatu
Citādi
ActiveWorkbook.Save
4. darbība. Aizveriet If paziņojumu
Beigas Ja
Beigt apakš
1. darbībā vienkārši pārbaudiet, vai mērķa šūna (šūna, kas ir mainījusies) atrodas diapazonā, kas norādīts ar metodi Intersect. Vērtība Nekas nozīmē, ka mērķa šūna atrodas ārpus norādītā diapazona.
2. darbība liek makro apturēt un iziet no procedūras, ja starp mērķa šūnu un norādīto diapazonu nav krustošanās.
Ja ir krustojums, 3. darbība aktivizē aktīvās darbgrāmatas saglabāšanas metodi, pārrakstot iepriekšējo versiju.
4. darbībā vienkārši aizveriet If priekšrakstu. Katru reizi, kad sākat pārbaudi If-Then-Citt, jums tas ir jāaizver ar atbilstošu End If.
Kā lietot makro
Lai ieviestu šo makro, tas ir jākopē un jāielīmē notikuma koda logā Worksheet_Change. Ievietojot makro šeit, tas tiks palaists katru reizi, kad veicat izmaiņas lapā:
Aktivizējiet Visual Basic redaktoru, nospiežot Alt+F11.
Projekta logā atrodiet sava projekta/darbgrāmatas nosaukumu un noklikšķiniet uz pluszīmes blakus tam, lai redzētu visas lapas.
Noklikšķiniet uz lapas, no kuras vēlaties aktivizēt kodu.
Nolaižamajā sarakstā Notikums atlasiet Mainīt notikumu.
Ierakstiet vai ielīmējiet kodu jaunizveidotajā modulī, mainot diapazona adresi atbilstoši savām vajadzībām.
Ievadiet savu kodu pasākumā Darblapas maiņa.