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

Hvordan gemmes og lukkes projektmappe efter inaktivitet i en vis periode?

I nogle gange kan du ved et uheld lukke en projektmappe, når du har travlt med andre anliggender i lang tid, hvilket kan miste nogle vigtige data i projektmappen. Er der nogle tricks til automatisk at gemme og lukke projektmappen, hvis du har inaktiveret den i en vis periode?

Gem automatisk og luk projektmappe efter inaktivitet i en vis tid med VBA

pil blå højre boble Gem automatisk og luk projektmappe efter inaktivitet i en vis tid med VBA

Der er ingen indbygget funktion i Excel til at løse dette problem, men jeg kan introducere en makrokode, som kan hjælpe dig med at gemme og lukke projektmappe efter inaktivitet på et bestemt tidspunkt.

1. Aktivér den projektmappe, du automatisk vil gemme, og luk efter inaktivitet i nogle sekunder, og tryk på Alt + F11 taster for at åbne Microsoft Visual Basic til applikationer vindue.

2. klik indsatte > Moduler at oprette en Moduler script, og indsæt nedenstående kode til det. Se skærmbillede:

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 gem luk projektmappe efter inaktivitet 1

3. Derefter i Projekt Explorer dobbeltklik på ruden Denne arbejdsbog, og indsæt nedenstående kode i det næste script. Se skærmbillede:

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 gem luk projektmappe efter inaktivitet 2

4. Gå til dobbeltklik på det modul, du indsatte i trin 2, og tryk på F5 nøgle for at køre koden. Se skærmbillede:
doc gem luk projektmappe efter inaktivitet 3

5. Derefter, efter 15 sekunder, vises en dialogboks, der minder dig om at gemme projektmappen, og klik på Ja for at gemme og lukke projektmappen.
doc gem luk projektmappe efter inaktivitet 4

tips:

(1) I den første kode kan du ændre inaktivitetstiden til anden i denne streng: Nu + tidsværdi ("00:00:15")

(2) Hvis du aldrig har gemt projektmappen før, Gem som dialogboksen kommer først ud og beder dig om at gemme den.
doc gem luk projektmappe efter inaktivitet 5


godt Beskyt regneark

Kutools til Excel Beskyt regneark funktionen kan hurtigt beskytte flere ark eller hele projektmappen på én gang.
doc beskytter flere regneark

De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (11)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
Ovenstående kode virker ikke, når en celle er aktiv. Det er

1. Indtast en værdi i cellen (tryk ikke på Enter eller tabulator)

2. minimer excel.

I dette tilfælde virker koden ikke.
Denne kommentar blev minimeret af moderatoren på webstedet
Hvis du arbejder i en separat projektmappe på det tidspunkt, hvor lukketid er nået, vil den lukke den projektmappe og ikke den inaktive. Dette kan løses ved at justere koden til:

Dæmp lukketid som dato
Dæmp WKB som streng
Sub TimeSetting()
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()
Arbejdsbøger(WKB).Luk Savechanges:=True
End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg lagde mærke til det samme. Og fandt den samme løsning :-)
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg støder nogle gange ind i en "Løbetidsfejl", når jeg åbner projektmappen, der har denne kode indbygget. Anyway at skrive denne kode bedre for at være mere stabil?
Denne kommentar blev minimeret af moderatoren på webstedet
strålende tak
Denne kommentar blev minimeret af moderatoren på webstedet
hej jeg vil indsætte denne kode til en anden kode som udløbskode med denne kode hvordan kan jeg gøre ....?
koden er ... følger
Privat underarbejdsbog_Åben()

Dim exdate som dato
Dim i som heltal

'ændre værdier for udløbsdatoen her !!!
anul = 2019 'år
luna = 5 'måned
ziua = 16 'dag

exdate = DateSerial(anul, luna, ziua)

Hvis Dato > exdate Så
MsgBox ("Applikationen " & ThisWorkbook.Name & " er udløbet !" & vbNewLine & vbNewLine _
& "Udløbsdato for opsætning er: " & exdate & " :)" & vbNewLine & vbNewLine _
& "Kontakt administrator for at forny versionen !"), vbCritical, ThisWorkbook.Name

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

Ved fejl GoTo ErrorHandler
Med arbejdsbøger (ThisWorkbook.Name)
Hvis .Sti <> "" Så

. Gemt = Sandt
.ChangeFileAccess xlReadOnly

Dræb expired_file

'få navnet på tilføjelsen, hvis det er addin og unistall addin
Hvis Application.Version >= 12 Så
i = 5
Ellers: i = 4
End If

Hvis Right(ThisWorkbook.Name, i) = ".xlam" Eller Right(ThisWorkbook.Name, i) = ".xla" så
wbName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - i)
'afinstaller tilføjelsesprogrammet, hvis det er installeret
Hvis AddIns(wbName).Installeret derefter
AddIns(wbName).Installed = Falsk
End If
End If

.Tæt

End If
Slut med

Exit Sub

End If

'MsgBox ("Du har " & exdate - Dato & "Dage tilbage")
Exit Sub

ErrorHandler:
MsgBox "Kunne ikke slette fil.."
Exit Sub

End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
Hvis du arbejder i en separat projektmappe på det tidspunkt, hvor lukketid er nået, vil den lukke den projektmappe og ikke den inaktive. Dette kan løses ved at justere koden til: - rettet og testet ud fra nedenstående kommentar - brug denne kode:

Gå ind i "Denne arbejdsbog"

Privat underarbejdsbog_BeforeClose(Annuller som boolesk)
Ring til TimeStop
End Sub
Privat underarbejdsbog_Åben()
Ring tidsindstilling
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Ring til TimeStop
Ring tidsindstilling
End Sub


Indtast "modul":

Dæmp lukketid som dato
Sub TimeSetting()
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


du kan ændre tidsindstillingen ved at ændre CloseTime = Now + TimeValue("00:10:00") - dette er sat til 10 minutter, ændre("00:10:00") til det tidspunkt, du ønsker, og det virker.
Denne kommentar blev minimeret af moderatoren på webstedet
Jeg er ikke sikker på, hvad der skete, men denne løsning virker ikke længere. Her er rettelsen til denne løsning, der virkede for mig:

````
Dim resetCount As Long

Offentlig underarbejdsbog_Åben()
On Error Resume Next
Indstil xWB = ThisWorkbook
resetCount = 0
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Ved fejl Genoptag Næste
Nulstil
End Sub

Sub Reset() Ved fejl Genoptag næste
Statisk xCloseTime
Hvis resetCount <> 0 Så
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=False
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, nu)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True

Else
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, nu)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True
End If
End Sub
````
Dette bruger samme SaveWork1 som:
````Sub SaveWork1()
Application.DisplayAlerts = False
Denne arbejdsbog. Gem
Denne arbejdsbog. Luk

Application.DisplayAlerts = True
End Sub

````
Denne kommentar blev minimeret af moderatoren på webstedet
Dette er godt. Nogle tips til at tilføje en popup-meddelelsesboks, der vil advare brugeren om, at arket er ved at lukke og give dem mulighed for at nulstille timeren?
Denne kommentar blev minimeret af moderatoren på webstedet
Når jeg ikke vil redigere, og jeg bare vil konsultere, lukkes filen stadig. Den må ikke lukke. Bør genstarte at tælle, når jeg vælger celler. Hvad er løsningen?
Denne kommentar blev minimeret af moderatoren på webstedet
Når jeg ikke vil redigere, og jeg bare vil konsultere, lukkes filen stadig. Den må ikke lukke. Bør genstarte at tælle, når jeg vælger celler. Hvad er løsningen?
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL