Note: The other languages of the website are Google-translated. Back to English

Wie speichere und schließe ich eine Arbeitsmappe nach Inaktivität für eine bestimmte Zeit?

In einigen Fällen können Sie versehentlich eine Arbeitsmappe schließen, wenn Sie längere Zeit mit anderen Angelegenheiten beschäftigt sind, wodurch einige wichtige Daten in der Arbeitsmappe verloren gehen. Gibt es Tricks, um die Arbeitsmappe automatisch zu speichern und zu schließen, wenn Sie sie für eine bestimmte Zeit inaktiviert haben?

Arbeitsmappe nach Inaktivität für eine bestimmte Zeit mit VBA automatisch speichern und schließen

Pfeil blau rechte Blase Arbeitsmappe nach Inaktivität für eine bestimmte Zeit mit VBA automatisch speichern und schließen

In Excel gibt es keine integrierte Funktion, um dieses Problem zu lösen. Ich kann jedoch einen Makrocode einführen, mit dem Sie Arbeitsmappen nach Inaktivität in einer bestimmten Zeit speichern und schließen können.

1. Aktivieren Sie die Arbeitsmappe, die Sie automatisch speichern und nach Inaktivität für einige Sekunden schließen möchten, und drücken Sie Alt + F11 Schlüssel zum Öffnen Microsoft Visual Basic für Applikationen Fenster.

2 Klicken Insert > Modul ein erstellen Modul Skript und fügen Sie den folgenden Code ein. Siehe Screenshot:

Dim CloseTime As Date
Sub TimeSetting()
    CloseTime = Now + TimeValue("00:00:15")
    On Error Resume Next
    Application.OnTime EarliestTime:=CloseTime, _
      Procedure:="SavedAndClose", Schedule:=True
End Sub
Sub TimeStop()
    On Error Resume Next
    Application.OnTime EarliestTime:=CloseTime, _
      Procedure:="SavedAndClose", Schedule:=False
 End Sub
Sub SavedAndClose()
    ActiveWorkbook.Close Savechanges:=True
End Sub

 

doc save Arbeitsmappe nach Inaktivität schließen 1

3. Dann in der Projekt Explorer Doppelklicken Sie Dieses Arbeitsbuchund fügen Sie den folgenden Code in das nebenstehende Skript ein. Siehe Screenshot:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call TimeStop
End Sub

Private Sub Workbook_Open()
    Call TimeSetting
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   Call TimeStop
   Call TimeSetting
End Sub

 

doc save Arbeitsmappe nach Inaktivität schließen 2

4. Doppelklicken Sie auf das Modul, das Sie in Schritt 2 eingefügt haben, und drücken Sie F5 Schlüssel zum Ausführen des Codes. Siehe Screenshot:
doc save Arbeitsmappe nach Inaktivität schließen 3

5. Nach 15 Sekunden erscheint ein Dialogfeld, in dem Sie daran erinnert werden, dass Sie die Arbeitsmappe gespeichert haben, und klicken Sie auf Ja Speichern und Schließen der Arbeitsmappe.
doc save Arbeitsmappe nach Inaktivität schließen 4

Tipps:

(1) Im ersten Code können Sie die Inaktivitätszeit in dieser Zeichenfolge in eine andere ändern: Jetzt + TimeValue ("00:00:15")

(2) Wenn Sie die Arbeitsmappe noch nie gespeichert haben, wird die Speichern unter Das Dialogfeld wird zuerst angezeigt und Sie werden aufgefordert, es zu speichern.
doc save Arbeitsmappe nach Inaktivität schließen 5


gut Arbeitsblatt schützen

Kutools für Excel Arbeitsblatt schützen Die Funktion kann schnell mehrere Blätter oder die gesamte Arbeitsmappe gleichzeitig schützen.
doc schützt mehrere Arbeitsblätter

Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (11)
Noch keine Bewertungen. Bewerten Sie als Erster!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Der obige Code funktioniert nicht, wenn eine Zelle aktiv ist. Das ist

1. Geben Sie einen Wert in die Zelle ein (drücken Sie nicht die Eingabetaste oder die Tabulatortaste).

2. Excel minimieren.

In diesem Fall funktioniert der Code nicht.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Wenn Sie an dem Punkt, an dem die Schließzeit erreicht ist, in einer separaten Arbeitsmappe arbeiten, wird diese Arbeitsmappe und nicht die inaktive geschlossen. Dies kann gelöst werden, indem der Code wie folgt angepasst wird:

Dim CloseTime As Date
Dim WKB als String
Unter Zeiteinstellung ()
WKB = ActiveWorkbook.Name
CloseTime = Now + TimeValue("00:00:15")
On Error Resume Next
Application.OnTime EarliestTime:=CloseTime, _
Procedure:="SavedAndClose", Schedule:=True
End Sub
Sub TimeStop()
On Error Resume Next
Application.OnTime EarliestTime:=CloseTime, _
Procedure:="SavedAndClose", Schedule:=False
End Sub
Sub SavedAndClose()
Arbeitsmappen (WKB).Close Savechanges:=True
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Mir ist das gleiche aufgefallen. Und die gleiche Lösung gefunden :-)
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Manchmal stoße ich auf einen „Laufzeitfehler“, wenn ich die Arbeitsmappe öffne, in die dieser Code integriert ist. Wie auch immer, um diesen Code besser zu schreiben, damit er stabiler ist?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
genial danke
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, ich möchte diesen Code in einen anderen Code wie einen Ablaufcode einfügen. Wie kann ich das mit diesem Code tun?
Code ist...folgend
Private Sub Workbook_Open ()

Dim exdate als Datum
Dim i Als Ganzzahl

'Werte für Verfallsdatum hier ändern !!!
anul = 2019 'Jahr
Luna = 5 'Monat
ziua = 16 'Tag

exdate = DateSerial(anul, luna, ziua)

Wenn Datum > exdate Dann
MsgBox ("Die Anwendung " & ThisWorkbook.Name & " ist abgelaufen!" & vbNewLine & vbNewLine _
& "Das eingerichtete Ablaufdatum ist: " & exdate & " :)" & vbNewLine & vbNewLine _
& "Administrator kontaktieren, um die Version zu erneuern!"), vbCritical, ThisWorkbook.Name

abgelaufene_Datei = DieseArbeitsmappe.Pfad & "\" & DieseArbeitsmappe.Name

Bei Fehler GoTo ErrorHandler
Mit Arbeitsmappen(DieseArbeitsmappe.Name)
Wenn .Pfad <> "" Dann

.Gespeichert = True
.ChangeFileAccess xlReadOnly

Beenden Sie abgelaufene_Datei

'den Namen des Add-Ins abrufen, wenn es sich um ein Add-In handelt, und das Add-In deinstallieren
Wenn Application.Version >= 12 Then
i = 5
Sonst: i = 4
End If

If Right(ThisWorkbook.Name, i) = „.xlam“ Or Right(ThisWorkbook.Name, i) = „.xla“ Then
wbName = Left(DieseArbeitsmappe.Name, Len(DieseArbeitsmappe.Name) - i)
'Add-In deinstallieren, falls es installiert ist
Wenn AddIns(wbName).Installiert Dann
AddIns(wbName).Installed = False
End If
End If

.Schließen

End If
Ende mit

Exit Sub

End If

'MsgBox ("You have " & exdate - Date & "Days left")
Exit Sub

Fehlerhandler:
MsgBox "Datei konnte nicht gelöscht werden.."
Exit Sub

End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Wenn Sie an dem Punkt, an dem die Schließzeit erreicht ist, in einer separaten Arbeitsmappe arbeiten, wird diese Arbeitsmappe und nicht die inaktive geschlossen. Dies kann gelöst werden, indem der Code wie folgt angepasst wird: - Korrigiert und getestet aus dem folgenden Kommentar - Verwenden Sie diesen Code:

Geben Sie in "Diese Arbeitsmappe" ein

Private Sub Workbook_BeforeClose (Abbrechen als boolescher Wert)
TimeStop anrufen
End Sub
Private Sub Workbook_Open ()
TimeSetting aufrufen
End Sub
Private Sub Workbook_SheetChange (ByVal Sh als Objekt, ByVal Target als Bereich)
TimeStop anrufen
TimeSetting aufrufen
End Sub


Geben Sie in "Modul" ein:

Dim CloseTime As Date
Unter Zeiteinstellung ()
CloseTime = Now + TimeValue("00:10:00")
On Error Resume Next
Application.OnTime EarliestTime:=CloseTime, _
Procedure:="SavedAndClose", Schedule:=True
End Sub
Sub TimeStop()
On Error Resume Next
Application.OnTime EarliestTime:=CloseTime, _
Procedure:="SavedAndClose", Schedule:=False
End Sub
Sub SavedAndClose()
ThisWorkbook.Close Savechanges:=True
End Sub


Sie können die Zeiteinstellung ändern, indem Sie CloseTime = Now + TimeValue ("00:10:00") ändern - dies ist auf 10 Minuten eingestellt, ändern Sie ("00:10:00") auf die gewünschte Zeit und es funktioniert.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich bin mir nicht sicher, was passiert ist, aber diese Lösung funktioniert nicht mehr. Hier ist die Lösung für diese Lösung, die für mich funktioniert hat:

````
Dim resetCount As Long

Public Sub Workbook_Open()
On Error Resume Next
Legen Sie xWB = DieseArbeitsmappe fest
resetCount = 0
End Sub

Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range) Bei Fehler als nächstes fortfahren
Zurücksetzen
End Sub

Sub Reset()On Error Resume Next
Statische xCloseTime
Wenn resetCount <> 0 Dann
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=False
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, Jetzt)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True

sonst
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, Jetzt)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True
End If
End Sub
````
Dies verwendet dasselbe SaveWork1 As:
````Sub SaveWork1()
Application.DisplayAlerts = Falsch
DieseArbeitsmappe.Speichern
DieseArbeitsmappe.Schließen

Application.DisplayAlerts = True
End Sub

````
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Das ist toll. Irgendwelche Tipps zum Hinzufügen eines Popup-Meldungsfelds, das den Benutzer warnt, dass das Blatt geschlossen wird, und ihm die Möglichkeit gibt, den Timer zurückzusetzen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Wenn ich nicht bearbeiten und nur konsultieren möchte, wird die Datei trotzdem geschlossen. Es sollte nicht schließen. Sollte das Zählen neu starten, wenn ich Zellen auswähle. Was ist die Lösung?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Wenn ich nicht bearbeiten und nur konsultieren möchte, wird die Datei trotzdem geschlossen. Es sollte nicht schließen. Sollte das Zählen neu starten, wenn ich Zellen auswähle. Was ist die Lösung?
Es sind noch keine Kommentare vorhanden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL