Võimalik, et töötate Excelis andmetega, mis on nii tundlikud, et soovite salvestada iga kord, kui teatud lahtrit või lahtrivahemikku muudetakse. See makro võimaldab teil määratleda lahtrite vahemiku, mis muutmisel sunnib töövihikut salvestama.
Kuvatud näites soovite, et töövihik salvestataks, kui vahemiku C5:C16 mis tahes lahtrit muudetakse.
Lahtri muutmine failis C5:C16 sunnib töövihikut salvestama.
Kuidas makro töötab
Selle koodi saladus on Intersect meetod. Kuna te ei soovi vanade lahtrite muutumisel töölehte salvestada, kasutate lõikumise meetodit, et teha kindlaks, kas sihtlahter (muutunud lahter) lõikub käivitusvahemikuna määratud vahemikuga (antud juhul C5:C16). .
Meetod Intersect tagastab ühe kahest asjast: vahemikuobjekti, mis määratleb kahe antud vahemiku vahelise ristumiskoha, või mitte midagi. Nii et sisuliselt peate viskama sihtlahtri risti meetodile, et kontrollida väärtuse Nothing väärtust. Sel hetkel saate otsustada, kas töövihik salvestada.
Private Sub Worksheet_Change (ByVal Target as Range)
1. samm: kas muudetud vahemik lõikub?
Kui lõikumine(sihtmärk, vahemik("C5:C16")) pole midagi, siis
2. samm: kui ristmikku pole, väljuge
Välju Sub
3. samm: kui on ristmik, salvestage töövihik
Muidu
ActiveWorkbook.Save
4. samm: sulgege If-lause
Lõpeta Kui
Lõpeta alam
1. sammus kontrollite lihtsalt, kas sihtlahter (muutunud lahter) on meetodi Intersect määratud vahemikus. Väärtus Nothing tähendab, et sihtlahter on väljaspool määratud vahemikku.
Etapp 2 sunnib makro peatuma ja protseduurist väljuma, kui sihtlahtri ja määratud vahemiku vahel pole ristumiskohta.
Kui ristmik on olemas, käivitab 3. toiming aktiivse töövihiku meetodi Salvesta, kirjutades eelmise versiooni üle.
4. sammus sulgete lihtsalt If-lause. Iga kord, kui alustate kontrolli If-Siis-Else, peate selle sulgema vastava Lõpp If-ga.
Kuidas makrot kasutada
Selle makro rakendamiseks peate selle kopeerima ja kleepima sündmuse koodi aknasse Worksheet_Change. Makro siia paigutamine võimaldab seda käivitada iga kord, kui teete lehel muudatusi:
Aktiveerige Visual Basic Editor, vajutades Alt+F11.
Leidke projektiaknas oma projekti/töövihiku nimi ja klõpsake kõigi lehtede nägemiseks selle kõrval olevat plussmärki.
Klõpsake lehel, millelt soovite koodi käivitada.
Valige ripploendist Sündmus suvand Muuda sündmust.
Tippige või kleepige kood vastloodud moodulisse, muutes vahemiku aadressi vastavalt oma vajadustele.
Sisestage oma kood sündmusele Töölehe muutmine.