Programoje Excel galite dirbti su duomenimis, kurie yra tokie jautrūs, kad norėsite išsaugoti kiekvieną kartą, kai pakeičiamas tam tikras langelis ar langelių diapazonas. Ši makrokomanda leidžia apibrėžti langelių diapazoną, kurį pakeitus darbaknygė bus išsaugota.
Pateiktame pavyzdyje norite, kad darbaknygė būtų išsaugota, kai redaguojamas bet kuris diapazono C5:C16 langelis.
Pakeitus langelį C5:C16, darbaknygė bus išsaugota.
Kaip veikia makrokomandas
Šio kodo paslaptis yra Intersect metodas. Kadangi nenorite išsaugoti darbalapio, kai pasikeičia koks nors senas langelis, naudokite sankirtos metodą, kad nustatytumėte, ar tikslinė langelis (pakeitęs langelis) susikerta su diapazonu, nurodytu kaip paleidimo diapazonas (šiuo atveju C5:C16). .
Metodas Intersect grąžina vieną iš dviejų dalykų: diapazono objektą, kuris apibrėžia dviejų nurodytų diapazonų sankirtą, arba nieko. Taigi iš esmės turite nukreipti tikslinę langelį prieš metodą Intersect, kad patikrintumėte, ar nėra nieko. Tuo metu galite nuspręsti, ar išsaugoti darbaknygę.
Private Sub Worksheet_Change (ByVal Target As Range)
1 veiksmas: ar pakeistas diapazonas susikerta?
Jei sankryža (tikslas, diapazonas ("C5: C16")) yra nieko, tada
„2 veiksmas: jei nėra sankryžos, atlikite išvažiavimo procedūrą
Išeiti iš sub
'3 veiksmas: jei yra sankryža, išsaugokite darbaknygę
Kitas
ActiveWorkbook.Save
4 veiksmas: uždarykite If teiginį
Pabaiga, jei
Pabaigos sub
1 veiksme tiesiog patikrinkite, ar tikslinė ląstelė (pasikeitusi ląstelė) yra intervale, nurodytame sankirtos metodu. Reikšmė Nieko reiškia, kad tikslinė ląstelė nepatenka į nurodytą diapazoną.
2 veiksmas priverčia makrokomandą sustoti ir išeiti iš procedūros, jei nėra susikirtimo tarp tikslinės ląstelės ir nurodyto diapazono.
Jei yra sankryža, 3 veiksmas suaktyvina aktyvios darbaknygės išsaugojimo metodą, perrašydamas ankstesnę versiją.
4 veiksme tiesiog uždarote If teiginį. Kiekvieną kartą, kai pradedate „If-Then-Else“ patikrinimą, turite jį uždaryti atitinkamu „End If“.
Kaip naudoti makrokomandą
Norėdami įdiegti šią makrokomandą, turite ją nukopijuoti ir įklijuoti į įvykio kodo langą Worksheet_Change. Įdėjus makrokomandą čia, ji bus paleista kiekvieną kartą, kai atliekate bet kokius lapo pakeitimus:
Suaktyvinkite Visual Basic redaktorių paspausdami Alt + F11.
Projekto lange raskite savo projekto / darbaknygės pavadinimą ir spustelėkite šalia jo esantį pliuso ženklą, kad pamatytumėte visus lapus.
Spustelėkite lapą, iš kurio norite suaktyvinti kodą.
Išskleidžiamajame sąraše Įvykis pasirinkite Keisti įvykį.
Įveskite arba įklijuokite kodą naujai sukurtame modulyje, pakeisdami diapazono adresą pagal savo poreikius.
Įveskite savo kodą į darbalapio keitimo įvykį.