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

Hur sparar jag och stänger arbetsboken efter inaktivitet under en viss tid?

I vissa tider kan du av misstag stänga en arbetsbok när du är upptagen med andra affärer under lång tid, vilket kan förlora viktiga data i arbetsboken. Finns det några knep för att automatiskt spara och stänga arbetsboken om du har inaktiverat den under en viss tid?

Spara automatiskt och stäng arbetsboken efter inaktivitet under en viss tid med VBA

pil blå höger bubbla Spara automatiskt och stäng arbetsboken efter inaktivitet under en viss tid med VBA

Det finns ingen inbyggd funktion i Excel för att lösa detta problem, men jag kan införa en makrokod som kan hjälpa dig att spara och stänga arbetsboken efter inaktivitet under en viss tid.

1. Aktivera arbetsboken som du vill spara och stänga automatiskt efter inaktivitet i vissa sekunder och tryck på Alt + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. klick Insert > Modulerna att skapa en Modulerna och klistra in koden nedan. Se skärmdump:

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 spara nära arbetsbok efter inaktivitet 1

3. Sedan i Project Explorer dubbelklicka Den här arbetsbokenoch klistra in under koden i bredvid skriptet. Se skärmdump:

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 spara nära arbetsbok efter inaktivitet 2

4. Gå till dubbelklicka på modulen som du satte in i steg 2 och tryck på F5 för att köra koden. Se skärmdump:
doc spara nära arbetsbok efter inaktivitet 3

5. Sedan dyker det upp efter 15 sekunder en dialogruta som påminner dig om att du sparar arbetsboken och klickar på Ja för att spara och stänga arbetsboken.
doc spara nära arbetsbok efter inaktivitet 4

Tips:

(1) I den första koden kan du ändra inaktivitetstiden till annan i den här strängen: Nu + tidsvärde ("00:00:15")

(2) Om du aldrig har sparat arbetsboken tidigare, Spara som dialogrutan kommer först ut och ber dig spara den.
doc spara nära arbetsbok efter inaktivitet 5


god Skydda kalkylbladet

Kutools för Excel Skydda kalkylbladet funktionen kan snabbt skydda flera ark eller hela arbetsboken samtidigt.
doc skydda flera kalkylblad

De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (11)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Ovanstående kod fungerar inte när en cell är aktiv. Det är

1. ange ett värde i cellen (tryck inte på Retur eller tabb)

2. minimera excel.

I det här fallet fungerar inte koden.
Denna kommentar minimerades av moderatoren på webbplatsen
Om du arbetar i en separat arbetsbok vid den punkt där stängningstiden nås kommer den att stänga den arbetsboken och inte den inaktiva. Detta kan lösas genom att justera koden till:

Dimma stängningstid som datum
Dim WKB som sträng
Sub TimeSetting()
WKB = ActiveWorkbook.Name
CloseTime = Now + TimeValue("00:00:15")
On Error Resume Next
Application.OnTime EarliestTime:=Stängningstid, _
Procedure:="SavedAndClose", Schedule:=True
End Sub
Sub TimeStop()
On Error Resume Next
Application.OnTime EarliestTime:=Stängningstid, _
Procedure:="SavedAndClose", Schedule:=False
End Sub
Sub SavedAndClose()
Workbooks(WKB).Stäng Savechanges:=True
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Jag märkte samma sak. Och hittade samma lösning :-)
Denna kommentar minimerades av moderatoren på webbplatsen
Jag stöter ibland på ett "körtidsfel" när jag öppnar arbetsboken som har den här koden inbyggd. Hur som helst för att skriva den här koden bättre för att den ska bli mer stabil?
Denna kommentar minimerades av moderatoren på webbplatsen
lysande tack
Denna kommentar minimerades av moderatoren på webbplatsen
hej jag vill infoga den här koden till en annan kod som utgångskoden med den här koden hur kan jag göra ....?
koden är...följer
Privat Sub Workbook_Open ()

Dim exdate som datum
Dim jag som heltal

'Ändra värden för utgångsdatum här !!!
anul = 2019 'år
luna = 5 'månader
ziua = 16 'dag

exdate = DateSerial(anul, luna, ziua)

Om Datum > exdate Då
MsgBox ("Applikationen " & ThisWorkbook.Name & " har löpt ut !" & vbNewLine & vbNewLine _
& "Utgångsdatum för inställning är: " & exdate & " :)" & vbNewLine & vbNewLine _
& "Kontakta administratören för att förnya versionen !"), vbCritical, ThisWorkbook.Name

expired_file = ThisWorkbook.Path & "\" & ThisWorkbook.Name

Vid fel GoTo ErrorHandler
Med arbetsböcker (ThisWorkbook.Name)
Om .Path <> "" Då

.Sparad = Sant
.ChangeFileAccess xlReadOnly

Döda expired_file

'få namnet på tillägget om det är addin och unistall addin
Om Application.Version >= 12 Då
i = 5
Annars: i = 4
End If

Om Right(ThisWorkbook.Name, i) = ".xlam" Eller Right(ThisWorkbook.Name, i) = ".xla" Då
wbName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - i)
'avinstallera tillägget om det är installerat
Om AddIns(wbName).Installed Then
AddIns(wbName).Installed = False
End If
End If

.Stänga

End If
Sluta med

Exit Sub

End If

'MsgBox ("Du har " & exdate - Datum & "Dagar kvar")
Exit Sub

ErrorHandler:
MsgBox "Det gick inte att ta bort filen..."
Exit Sub

End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Om du arbetar i en separat arbetsbok vid den punkt där stängningstiden nås kommer den att stänga den arbetsboken och inte den inaktiva. Detta kan lösas genom att justera koden till: - korrigerad och testad från kommentaren nedan - använd denna kod:

Gå in i "Denna arbetsbok"

Privat underarbetsbok_BeforeClose(Avbryt som boolesk)
Ring TimeStop
End Sub
Privat Sub Workbook_Open ()
Ring TimeSetting
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Ring TimeStop
Ring TimeSetting
End Sub


Gå in i "modul":

Dimma stängningstid som datum
Sub TimeSetting()
CloseTime = Now + TimeValue("00:10:00")
On Error Resume Next
Application.OnTime EarliestTime:=Stängningstid, _
Procedure:="SavedAndClose", Schedule:=True
End Sub
Sub TimeStop()
On Error Resume Next
Application.OnTime EarliestTime:=Stängningstid, _
Procedure:="SavedAndClose", Schedule:=False
End Sub
Sub SavedAndClose()
ThisWorkbook.Close Savechanges:=True
End Sub


du kan ändra tidsinställningen genom att ändra CloseTime = Now + TimeValue("00:10:00") - detta är inställt på 10 minuter, ändra ("00:10:00") till vilken tid du vill och det fungerar.
Denna kommentar minimerades av moderatoren på webbplatsen
Jag är inte säker på vad som hände men den här lösningen fungerar inte längre. Här är lösningen som fungerade för mig:

````
Dim återställCount As Long

Public Sub Workbook_Open()
On Error Resume Next
Ställ in xWB = ThisWorkbook
resetCount = 0
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Vid fel Fortsätt Nästa
Återställa
End Sub

Sub Reset() Vid fel Återuppta Nästa
Statisk xCloseTime
Om resetCount <> 0 Då
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=False
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, nu)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True

annars
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, nu)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True
End If
End Sub
````
Detta använder samma SaveWork1 som:
````Sub SaveWork1()
Application.DisplayAlerts = False
This Workbook.Save
Denna arbetsbok. Stäng

Application.DisplayAlerts = Sant
End Sub

````
Denna kommentar minimerades av moderatoren på webbplatsen
Det här är bra. Några tips om att lägga till en popup-meddelanderuta som varnar användaren att arket håller på att stängas och ger dem möjlighet att återställa timern?
Denna kommentar minimerades av moderatoren på webbplatsen
När jag inte vill redigera och jag bara vill konsultera, stängs filen fortfarande. Den ska inte stängas. Bör börja räkna om när jag markerar celler. Vad är lösningen?
Denna kommentar minimerades av moderatoren på webbplatsen
När jag inte vill redigera och jag bara vill konsultera, stängs filen fortfarande. Den ska inte stängas. Bör börja räkna om när jag markerar celler. Vad är lösningen?
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL