Wie Sie Ereignisse aktivieren, so Workbook_BeforeSave aufgerufen wird
Meine Workbook_BeforeSave
- Ereignis wird nicht aufgerufen, vor dem speichern
Dies ist mein code:
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
a = MsgBox("Do you really want to save the workbook?", vbYesNo)
If a = vbNo Then Cancel = True
End Sub
Dies ist wahrscheinlich normal, denn die Ereignisse sind wahrscheinlich nicht aktiviert.
Jetzt habe ich Application.Events = True
wie diese:
Option Explicit
Application.Events = True
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
a = MsgBox("Do you really want to save the workbook?", vbYesNo)
If a = vbNo Then Cancel = True
End Sub
Dadurch ändert sich nichts, Workbook_BeforeSave wird noch nicht genannt, bis auf das speichern. Aber wenn ich in der Nähe der excel-Datei die folgende Fehlermeldung wird angezeigt :
Die englische übersetzung ist "Kompilierungs-Fehler: Falsche Anweisung außerhalb einer Prozedur."
Offenbar die Application.Events = True
ist nicht an der richtigen Stelle, aber wo soll ich es sagen ?
der code zwischen option explicit und die
Zunächst ist es
eigentlich das problem ist: wie kann ich die Ereignisse automatisch.
danke für den Hinweis, dass es sich
Veranstaltungen nicht standardmäßig deaktiviert - Sie müssen diese deaktiviert werden, in code. Sind Sie sicher, dass Sie die Makros aktiviert? Wenn dem so ist, muss es einen code irgendwo, deaktivieren Ereignisse.
Workbook_BeforeSave
Unterprogramm nicht ausgeführt werden, weil Ihr nicht genannt. Ich denke, du wirst haben, um einen zusätzlichen sub, die Sie ausführen, die durch die manuelle, die es ermöglicht, Ereignisse.Zunächst ist es
Application.EnableEvents = True
. Zweitens, und noch wichtiger ist, müssen Sie, um herauszufinden, warum Ereignisse deaktiviert sind. 😉eigentlich das problem ist: wie kann ich die Ereignisse automatisch.
danke für den Hinweis, dass es sich
Application.EnableEvents = True
. Es scheint, events sind standardmäßig deaktiviert. Gibt es eine Möglichkeit, Ereignisse aktivieren autoatically ?Veranstaltungen nicht standardmäßig deaktiviert - Sie müssen diese deaktiviert werden, in code. Sind Sie sicher, dass Sie die Makros aktiviert? Wenn dem so ist, muss es einen code irgendwo, deaktivieren Ereignisse.
InformationsquelleAutor Jabberwocky | 2014-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hoffe, diese Hilfe:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
muss inThisWorkbook
in einem VBA-Projekt.Application.EnableEvents = True
können nicht eingefügt werden, außerhalb der Prozedur oder Funktion.Ereignisse werden standardmäßig aktiviert. Also, es muss irgendwo in vba-Projekt-Veranstaltungen sind immer deaktiviert. Diese kann durchsucht werden nach :
Sobald Sie sich im VBA-Projekt, Drücken Sie Strg+F öffnen Sie das Dialogfeld Suchen. Dann suchen für die Anwendung.enableevents im aktuellen Projekt. Drücken Sie Weitersuchen. Siehe das Bild unten.
Können Sie einen kleinen sub zu ändern und anzeigen der Anwendung.EnableEvents-status (ON/OFF). Den sub unter jedem standard-Modul. Siehe das Bild unten.
InformationsquelleAutor ZAT