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

Kako shraniti in zapreti delovni zvezek po neaktivnosti za določen čas?

Včasih lahko nehote zaprete delovni zvezek, če ste dlje časa zasedeni z drugimi zadevami, zaradi česar lahko v delovnem zvezku izgubite nekatere pomembne podatke. Ali obstajajo triki za samodejno shranjevanje in zapiranje delovnega zvezka, če ste ga določen čas deaktivirali?

Samodejno shranite in zaprite delovni zvezek po določenem času nedejavnosti z VBA

puščica modri desni mehurček Samodejno shranite in zaprite delovni zvezek po določenem času nedejavnosti z VBA

V Excelu ni vgrajene funkcije za reševanje te težave, lahko pa vam predstavim makro kodo, ki vam lahko pomaga, da shranite in zaprete delovni zvezek po neaktivnosti v določenem času.

1. Omogočite delovni zvezek, ki ga želite samodejno shraniti in zapreti po določeni sekundi nedejavnosti, in pritisnite Alt + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

2. klik Vstavi > Moduli ustvariti Moduli skript in vanj prilepite spodnjo kodo. Oglejte si posnetek zaslona:

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 shrani zapreti delovni zvezek po neaktivnosti 1

3. Nato v Raziskovalec projektov podokno, dvokliknite Ta delovni zvezekin prilepite spodnjo kodo v skript poleg. Oglejte si posnetek zaslona:

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 shrani zapreti delovni zvezek po neaktivnosti 2

4. Dvokliknite modul, ki ste ga vstavili v 2. koraku, in pritisnite F5 tipko za zagon kode. Oglejte si posnetek zaslona:
doc shrani zapreti delovni zvezek po neaktivnosti 3

5. Po 15 sekundah se prikaže pogovorno okno z opozorilom na shranjevanje delovnega zvezka in kliknite Da shranite in zaprite delovni zvezek.
doc shrani zapreti delovni zvezek po neaktivnosti 4

Nasvet:

(1) V prvi kodi lahko spremenite čas neaktivnosti na drugega v tem nizu: Zdaj + TimeValue ("00:00:15")

(2) Če še niste shranili delovnega zvezka, se Shrani kot najprej se odpre pogovorno okno in vas prosimo, da ga shranite.
doc shrani zapreti delovni zvezek po neaktivnosti 5


dobro Zaščitite delovni list

Kutools za Excel Zaščitite delovni list funkcija lahko hitro zaščiti več listov ali celoten delovni zvezek hkrati.
doc zaščiti več delovnih listov

Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize
Komentarji (11)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Zgornja koda ne deluje, ko je celica aktivna. to je

1. vnesite vrednost v celico (ne pritiskajte Enter ali tab)

2. minimizirajte excel.

V tem primeru koda ne deluje.
Ta komentar je moderator na spletnem mestu minimiziral
Če delate v ločenem delovnem zvezku na točki, ko je dosežen čas zaprtja, bo ta delovni zvezek zaprl in ne neaktivnega. To je mogoče rešiti s prilagoditvijo kode na:

Zatemni CloseTime kot datum
Dim WKB kot niz
Podnastavitev časa ()
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, _
Postopek:="SavedAndClose", Schedule:=False
End Sub
Sub SavedAndClose()
Delovni zvezki(WKB).Zaprite Shrani spremembe:=True
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Opazil sem isto stvar. In našel isto rešitev :-)
Ta komentar je moderator na spletnem mestu minimiziral
Včasih naletim na "Napaka v času izvajanja", ko odprem delovni zvezek, ki ima to kodo vgrajeno. Ali bi vseeno bolje napisal to kodo, da bo bolj stabilna?
Ta komentar je moderator na spletnem mestu minimiziral
briljantna hvala
Ta komentar je moderator na spletnem mestu minimiziral
zdravo, želim vstaviti to kodo v drugo kodo, kot je koda za potek veljavnosti, s to kodo, kako lahko naredim ....?
koda ... sledi
Zasebni delovni zvezek_Open()

Dim exdate Kot datum
Dim i kot celo število

'tukaj spremenite vrednosti za datum poteka!!!
anul = 2019 'leto
luna = 5 'mesecev
ziua = 16 'dan

exdate = DateSerial (anul, luna, ziua)

Če je datum > exdate Potem
MsgBox ("Aplikacija " & ThisWorkbook.Name & " je potekla!" & vbNewLine & vbNewLine _
& "Nastavitev datuma poteka veljavnosti je: " & exdate & " :)" & vbNewLine & vbNewLine _
& "Za obnovitev različice se obrnite na skrbnika!"), vbCritical, ThisWorkbook.Name

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

Na napako Pojdi na ErrorHandler
Z delovnimi zvezki (ThisWorkbook.Name)
Če .Pot <> "" Potem

.Shranjeno = Res
.ChangeFileAccess xlReadOnly

Ubij expired_file

'pridobite ime dodatka, če je addin, in odstranite dodatek
Če je Application.Version >= 12 Potem
i = 5
Drugače: i = 4
Konec Če

Če je Right(ThisWorkbook.Name, i) = ".xlam" Ali Right(ThisWorkbook.Name, i) = ".xla" Potem
wbName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - i)
'odstrani dodatek, če je nameščen
Če AddIns(wbName).Nameščen Nato
AddIns(wbName).Installed = False
Konec Če
Konec Če

.Zapri

Konec Če
Končaj s

Exit Sub

Konec Če

'MsgBox ("Imate " & exdate - Datum & "Ostali dnevi")
Exit Sub

ErrorHandler:
MsgBox "Neuspešno brisanje datoteke.."
Exit Sub

End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Če delate v ločenem delovnem zvezku na točki, ko je dosežen čas zaprtja, bo ta delovni zvezek zaprl in ne neaktivnega. To je mogoče rešiti tako, da prilagodite kodo na: - popravljeno in preizkušeno iz spodnjega komentarja - uporabite to kodo:

Vstopite v "Ta delovni zvezek"

Private Sub Workbook_BeforeClose(Prekliči kot Boolean)
Pokličite TimeStop
End Sub
Zasebni delovni zvezek_Open()
Nastavitev časa klica
End Sub
Private Sub Workbook_SheetChange(ByVal Sh kot objekt, ByVal Target kot obseg)
Pokličite TimeStop
Nastavitev časa klica
End Sub


Vstopite v "modul":

Zatemni CloseTime kot datum
Podnastavitev časa ()
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, _
Postopek:="SavedAndClose", Schedule:=False
End Sub
Sub SavedAndClose()
ThisWorkbook.Close Savechanges:=True
End Sub


nastavitev časa lahko spremenite tako, da spremenite CloseTime = Now + TimeValue("00:10:00") - to je nastavljeno na 10 minut, spremenite ("00:10:00") na poljuben čas in deluje.
Ta komentar je moderator na spletnem mestu minimiziral
Ne vem, kaj se je zgodilo, vendar ta rešitev ne deluje več. Tukaj je popravek te rešitve, ki je delal zame:

````
Dim resetCount As Long

Javni pod delovni zvezek_Open()
On Error Resume Next
Nastavite xWB = Ta delovni zvezek
resetCount = 0
End Sub

Private Sub Workbook_SheetChange(ByVal Sh kot objekt, ByVal Target kot obseg)Ob napaki Nadaljuj naprej
Ponastavi
End Sub

Sub Reset()On Error Nadaljuj naprej
Statično xCloseTime
Če je resetCount <> 0 Potem
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=False
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, zdaj)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True

Else
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, zdaj)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True
Konec Če
End Sub
````
To uporablja isti SaveWork1 As:
````Sub SaveWork1()
Application.DisplayAlerts = False
Ta delovni zvezek.Shrani
Ta delovni zvezek. Zapri

Application.DisplayAlerts = True
End Sub

````
Ta komentar je moderator na spletnem mestu minimiziral
To je odlično. Kakšen nasvet o dodajanju pojavnega sporočilnega okna, ki bo uporabnika opozorilo, da se bo list zaprl, in mu dalo možnost, da ponastavi časovnik?
Ta komentar je moderator na spletnem mestu minimiziral
Ko ne želim urejati in želim le pregledovati, se datoteka še vedno zapre. Ne bi se smelo zapreti. Ko izberem celice, bi moral znova začeti štetje. Kaj je rešitev?
Ta komentar je moderator na spletnem mestu minimiziral
Ko ne želim urejati in želim le pregledovati, se datoteka še vedno zapre. Ne bi se smelo zapreti. Ko izberem celice, bi moral znova začeti štetje. Kaj je rešitev?
Tu še ni objavljenih komentarjev
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL