Az Excelben előfordulhat, hogy olyan érzékeny adatokon dolgozik, hogy minden egyes cella vagy cellatartomány módosítása után mentenie kell. Ez a makró lehetővé teszi olyan cellatartomány meghatározását, amely megváltoztatásakor a munkafüzet mentését kényszeríti.
A bemutatott példában azt szeretné, hogy a munkafüzet mentse a C5:C16 tartomány bármelyik cellájának szerkesztését.

A C5:C16 cella módosítása a munkafüzet mentését kényszeríti ki.
Hogyan működik a makró
Ennek a kódnak a titka az Intersect metódus. Mivel nem szeretné menteni a munkalapot, amikor bármely régi cella megváltozik, a Metszés metódus segítségével határozza meg, hogy a célcella (a megváltozott cella) metszi-e a triggertartományként megadott tartományt (ebben az esetben C5:C16). .
Az Intersect metódus két dolog egyikét adja vissza: egy Range objektumot, amely meghatározza a két adott tartomány metszetét, vagy semmit. Lényegében tehát a célcellát az Intersect metódussal szembe kell dobnia, hogy ellenőrizze a Semmi értékét. Ekkor eldöntheti, hogy menti-e a munkafüzetet.
Private Sub Worksheet_Change (ByVal Target As Range)
'1. lépés: A megváltozott tartomány metszi egymást?
Ha a metszéspont(cél, tartomány("C5:C16")) semmi akkor
'2. lépés: Ha nincs kereszteződés, lépjen ki az eljárásból
Exit Sub
'3. lépés: Ha van kereszteződés, mentse el a munkafüzetet
Más
ActiveWorkbook.Save
'4. lépés: Zárja be az If utasítást
Vége Ha
Vége Sub
Az 1. lépésben egyszerűen ellenőrizze, hogy a célcella (a megváltozott cella) az Intersect metódus által meghatározott tartományban van-e. A Semmi érték azt jelenti, hogy a célcella kívül esik a megadott tartományon.
A 2. lépés leállítja a makrót, és kilép az eljárásból, ha nincs metszéspont a célcella és a megadott tartomány között.
Ha van kereszteződés, a 3. lépés aktiválja az aktív munkafüzet Mentés metódusát, felülírva az előző verziót.
A 4. lépésben egyszerűen be kell zárnia az If utasítást. Minden alkalommal, amikor elindít egy If-Then-Else ellenőrzést, le kell zárnia egy megfelelő End If-el.
Hogyan kell használni a makrót
A makró megvalósításához másolja és illessze be a Worksheet_Change eseménykód ablakba. Ha ide helyezi a makrót, akkor minden alkalommal lefut, amikor bármilyen módosítást végez a lapon:
Aktiválja a Visual Basic Editort az Alt+F11 megnyomásával.
A projekt ablakban keresse meg a projekt/munkafüzet nevét, és kattintson a mellette lévő pluszjelre az összes lap megtekintéséhez.
Kattintson arra a lapra, amelyről a kódot aktiválni szeretné.
Az Esemény legördülő listában válassza az Esemény módosítása lehetőséget.
Írja be vagy illessze be a kódot az újonnan létrehozott modulba, és módosítsa a tartomány címét igényeinek megfelelően.

Írja be a kódot a Munkalap módosítása eseménybe.