A munkafüzetek Excelben történő bezárásakor megjelenő "A módosítások mentésének letiltása" üzenet jelenik meg

Hatókör
Excel 2007

Összegzés

A Microsoft Excel programban létrehozhat egy olyan Microsoft Visual Basic for Applications (VBA) makrót, amely a munkafüzetek bezárásakor letiltja a változtatások mentésére vonatkozó kérdést. Ezt megteheti a munkafüzet állapotának beállításával ( Mentve ) tulajdonság vagy a munkafüzet összes riasztásának mellőzésével.

További információ

MEGJEGYZÉS: A Microsoft csak illusztrációs céllal ad közre programozási példákat, kifejezett vagy vélelmezett garancia nélkül. Ez magában foglalja, de nem kizárólagosan a forgalmazhatóságra vagy az adott célra való alkalmasságra vonatkozó vélelmezett garanciát. Ez a cikk feltételezi, hogy ismeri a bemutatott programozási nyelvet, valamint az eljárások létrehozásához és hibakereséséhez használt eszközöket. A Microsoft támogatási szakemberei segíthetnek elmagyarázni egy adott eljárás működését. Azonban nem módosítják ezeket a példákat, hogy további funkciókat biztosítsanak, és nem építenek ki eljárásokat kifejezetten az Ön igényeire. 

Az alábbi példák megvalósításának előkészítéséhez először hajtsa végre az alábbi lépéseket:

  1. Indítsa el az Excelt, és nyisson meg egy új munkafüzetet.

  2. Nyomja le az ALT+F11 billentyűkombinációt a Visual Basic szerkesztő elindításához.

  3. A Beszúrás menüben kattintson a Modul parancsra.

  4. Írja be a mintamakrókódot a modullapra.

  5. Az Excelbe való visszatéréshez nyomja le az ALT+F11 billentyűkombinációt.

  6. A Microsoft Office Excel 2003-ban és az Excel korábbi verzióiban válassza az Eszközök menü Makró elemét, majd kattintson a Makrók parancsra.

    A Microsoft Office Excel 2007-ben kattintson a Fejlesztőeszközöklap Kód csoportjának Makrók gombjára.

    Ha a Fejlesztőeszközök lap nem érhető el, próbálkozzon a következővel:

        a. Kattintson a Microsoft Office gombra, majd Az Excel beállításai parancsra.

        b. A Népszerű kategória Alapvető beállítások az Excel használatához területén kattintással válassza a Megjelenítés lehetőséget .
            A menüszalag
    Fejlesztőeszközök lapján jelölje be a jelölőnégyzetet, majd kattintson az OK gombra.

  7. Jelölje ki a kívánt makrót, majd kattintson a Futtatás gombra.

A Saved tulajdonság a Hamis értéket adja vissza, ha a legutóbbi mentés óta módosított egy munkafüzetet.

A fenntartott szubrutin névvel Auto_Close megadhatja azt a makrót, amely a munkafüzetek bezárásakor fut. Ezzel szabályozhatja, hogy a program hogyan kezelje a dokumentumot, amikor a felhasználó bezárja a dokumentumokat az Excelben.
 

1. példa: A munkafüzet bezárása a módosítások mentése nélkül

Ha kényszeríteni szeretné egy munkafüzet módosítások mentése nélküli bezárását, írja be az alábbi kódot az adott munkafüzet valamelyik Visual Basic moduljába:
 

Sub Auto_Close()

ThisWorkbook.Saved = True

End Sub

Ha a Saved tulajdonság értéke Igaz, az Excel úgy válaszol, mintha a munkafüzetet már mentette volna, és nem történt módosítás az utolsó mentés óta.

A program DisplayAlerts tulajdonsága ugyanerre a célra használható. A következő makró például kikapcsolja a Figyelmeztetések megjelenítését , bezárja az aktív munkafüzetet a módosítások mentése nélkül, majd ismét bekapcsolja a Figyelmeztetések megjelenítését .
 

Sub CloseBook()

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

End Sub

Használhatja a Bezárásmetódus SaveChanges argumentumát is.

A következő makró a módosítások mentése nélkül bezárja a munkafüzetet:
 

Sub CloseBook2()

ActiveWorkbook.Close savechanges:=False

End Sub

2. példa: A munkafüzet bezárása és a módosítások mentése

A módosítások mentésének kényszerítéséhez írja be a következő kódot a munkafüzet valamelyik Visual Basic moduljába:
 

Sub Auto_Close()

Ha ezThisWorkbook.Saved = hamis, akkor

ThisWorkbook.Save End If

End Sub

Ez az eljárással ellenőrizheti, hogy a fájl Saved tulajdonsága False (Hamis) értékre van-e állítva. Ha igen, akkor a munkafüzet módosult az utolsó mentés óta, és a módosítások is mentve lesznek.