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

Belirli bir süre işlem yapılmadığında çalışma kitabı nasıl kaydedilir ve kapatılır?

Bazı zamanlarda, uzun süre başka işlerle meşgul olduğunuzda, çalışma kitabındaki bazı önemli verileri kaybedebilecek bir çalışma kitabını yanlışlıkla kapatabilirsiniz. Çalışma kitabını belirli bir süre devre dışı bıraktıysanız, otomatik olarak kaydedip kapatmak için herhangi bir numara var mı?

VBA ile belirli bir süre işlem yapılmadığında çalışma kitabını otomatik kaydetme ve kapatma

ok mavi sağ balon VBA ile belirli bir süre işlem yapılmadığında çalışma kitabını otomatik kaydetme ve kapatma

Excel'de bu sorunu çözmek için yerleşik bir işlev yoktur, ancak belirli bir süre içinde işlem yapılmadığında çalışma kitabını kaydetmenize ve kapatmanıza yardımcı olabilecek bir makro kodu ekleyebilirim.

1. Belirli bir saniye boyunca işlem yapılmadığında otomatik olarak kaydetmek ve kapatmak istediğiniz çalışma kitabını etkinleştirin ve Alt + F11 açmak için anahtarlar Uygulamalar için Microsoft Visual Basic pencere.

2. tık Ekle > modül Oluşturmak için modül komut dosyasını girin ve altına kodu yapıştırın. Ekran görüntüsüne bakın:

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 hareketsizlikten sonra çalışma kitabını kapat 1

3. Sonra Proje Gezgini bölme, çift tıklama Bu Çalışma Kitabıve aşağıdaki kodu komut dosyasının yanına yapıştırın. Ekran görüntüsüne bakın:

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 hareketsizlikten sonra çalışma kitabını kapat 2

4. 2. adımda yerleştirdiğiniz modüle çift tıklayın ve F5 kodu çalıştırmak için anahtar. Ekran görüntüsüne bakın:
doc hareketsizlikten sonra çalışma kitabını kapat 3

5. Ardından, 15 saniye sonra, çalışma kitabını kaydetmenizi hatırlatmak için açılan bir iletişim kutusu açılır ve Evet çalışma kitabını kaydetmek ve kapatmak için.
doc hareketsizlikten sonra çalışma kitabını kapat 4

İpuçları:

(1) İlk kodda, hareketsizlik süresini bu dizede diğeriyle değiştirebilirsiniz: Şimdi + ZamanDeğeri ("00:00:15")

(2) Çalışma kitabını daha önce hiç kaydetmediyseniz, Farklı Kaydet iletişim kutusu ilk olarak çıkacak ve kaydetmenizi isteyecektir.
doc hareketsizlikten sonra çalışma kitabını kapat 5


iyi Çalışma Sayfasını Koruyun

Kutools for Excel's Çalışma Sayfasını Koruyun işlevi, birden çok sayfayı veya tüm çalışma kitabını aynı anda hızla koruyabilir.
doc birden çok çalışma sayfasını koru

En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Yorumları sıralama ölçütü
Yorumlar (11)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bir hücre aktifken yukarıdaki kod çalışmıyor. Yani

1. hücreye bir değer girin (Enter veya sekme tuşuna basmayın)

2. excel'i küçültün.

Bu durumda kod çalışmıyor.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Kapanış saatine gelindiğinde ayrı bir çalışma kitabında çalışıyorsanız, etkin olmayan çalışma kitabını değil o çalışma kitabını kapatacaktır. Bu, kodu şu şekilde ayarlayarak çözülebilir:

Dim KapatZaman Tarih Olarak
Dize olarak WKB'yi karart
Alt Zaman Ayarı()
WKB = ActiveWorkbook.Name
CloseTime = Now + TimeValue("00:00:15")
On Error Resume Next
Application.OnTime EarlyTime:=CloseTime, _
Prosedür:="SavedAndClose", Program:=True
End Sub
Alt Zaman Durdurma()
On Error Resume Next
Application.OnTime EarlyTime:=CloseTime, _
Prosedür:="SavedAndClose", Program:=Yanlış
End Sub
Abone KaydedildiAndClose()
Çalışma Kitapları(WKB).Kapat Değişiklikleri Kaydet:=True
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Ben de aynı şeyi fark ettim. Ve aynı çözümü buldum :-)
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu kodun yerleşik olarak bulunduğu çalışma kitabını açtığımda bazen "Çalışma zamanı Hatası" ile karşılaşıyorum. Her neyse, daha kararlı olması için bu kodu daha iyi yazmak mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
parlak teşekkürler
Bu yorum sitedeki moderatör tarafından en aza indirildi
merhaba ben bu kodu başka bir koda eklemek istiyorum mesela bu kod ile nasıl yapabilirim....?
kod... takip ediyor
Özel Sub Workbook_Open ()

Dim exdate As Date
Dim i As Integer

'burada son kullanma tarihi için değerleri değiştirin !!!
anül = 2019 'yıl
luna = 5 'ay
ziua = 16 'gün

exdate = DateSerial(anul, luna, ziua)

Tarih > exdate ise
MsgBox ("" ​​& ThisWorkbook.Name & " uygulamasının süresi doldu !" & vbNewLine & vbNewLine _
& "Son kullanma tarihi: " & exdate & " :)" & vbNewLine & vbNewLine _
& "Sürümü yenilemek için Yönetici ile iletişime geçin!"), vbCritical, ThisWorkbook.Name

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

Hatada ErrorHandler'a Git
Çalışma Kitapları ile(ThisWorkbook.Name)
Eğer .Path <> "" O zaman

.Kaydedildi = Doğru
.ChangeFileAccess xlOnly ReadOnly

Experied_file'ı öldür

'addin ve unistall eklenti ise eklentinin adını alın
Application.Version >= 12 ise
i = 5
Diğer: ben = 4
Eğer son

Eğer Right(ThisWorkbook.Name, i) = ".xlam" veya Right(ThisWorkbook.Name, i) = ".xla" ise
wbName = Sol(ThisWorkbook.Name, Len(ThisWorkbook.Name) - i)
'yüklüyse eklentiyi kaldırın
AddIns(wbName).Installed ise
AddIns(wbName).Yüklü = Yanlış
Eğer son
Eğer son

.Kapat

Eğer son
İle bitmek

Exit Sub

Eğer son

'MsgBox ("Sahip olduğunuz" & exdate - Tarih & "Kalan gün sayısı")
Exit Sub

errorHandler:
MsgBox "Dosya silinemedi.."
Exit Sub

End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Kapanış saatine gelindiğinde ayrı bir çalışma kitabında çalışıyorsanız, etkin olmayan çalışma kitabını değil o çalışma kitabını kapatacaktır. Bu, kodu şu şekilde ayarlayarak çözülebilir: - aşağıdaki yorumdan düzeltildi ve test edildi - bu kodu kullanın:

"Bu Çalışma Kitabı"na girin

Özel Sub Workbook_BeforeClose (Boole Olarak İptal Et)
Çağrı SüresiDurdur
End Sub
Özel Sub Workbook_Open ()
Çağrı Süresi Ayarı
End Sub
Özel Alt Workbook_SheetChange(Nesne Olarak ByVal Sh, Aralık Olarak ByVal Target)
Çağrı SüresiDurdur
Çağrı Süresi Ayarı
End Sub


"Modül"e girin:

Dim KapatZaman Tarih Olarak
Alt Zaman Ayarı()
CloseTime = Now + TimeValue("00:10:00")
On Error Resume Next
Application.OnTime EarlyTime:=CloseTime, _
Prosedür:="SavedAndClose", Program:=True
End Sub
Alt Zaman Durdurma()
On Error Resume Next
Application.OnTime EarlyTime:=CloseTime, _
Prosedür:="SavedAndClose", Program:=Yanlış
End Sub
Abone KaydedildiAndClose()
ThisWorkbook.Close Değişiklikleri Kaydet:=True
End Sub


CloseTime = Now + TimeValue("00:10:00") - bu 10 dakikaya ayarlıdır, ("00:10:00") öğesini istediğiniz zaman olarak değiştirin ve çalışır.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Ne olduğundan emin değilim ama bu çözüm artık çalışmıyor. İşte benim için işe yarayan bu çözümün düzeltmesi:

````
Loş sıfırlamaUzun Olarak Say

Genel Alt Çalışma Kitabı_Open()
On Error Resume Next
xWB'yi ayarla = BuÇalışma Kitabı
Sıfırlama Sayısı = 0
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)Hata Devam Ediyor Sonraki
Reset
End Sub

Sub Reset()On Hata Devam Devam İleri
Statik xKapatZamanı
resetCount <> 0 ise
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=False
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, Şimdi)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Program:=True

başka
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, Şimdi)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Program:=True
Eğer son
End Sub
````
Bu aynı SaveWork1 As'ı kullanıyor:
````Alt SaveWork1()
Application.DisplayAlerts = Yanlış
BuÇalışma Kitabı.Kaydet
BuÇalışma Kitabı.Kapat

Application.DisplayAlerts = True
End Sub

````
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu harika. Sayfanın kapanmak üzere olduğu konusunda kullanıcıyı uyaracak ve onlara zamanlayıcıyı sıfırlama seçeneği verecek bir açılır mesaj kutusu eklemeyle ilgili herhangi bir ipucu var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Düzenlemek istemediğimde ve sadece danışmak istediğimde dosya hala kapanıyor. Kapanmamalı. Hücreleri seçtiğimde sayımı yeniden başlatmalı. Çözüm nedir?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Düzenlemek istemediğimde ve sadece danışmak istediğimde dosya hala kapanıyor. Kapanmamalı. Hücreleri seçtiğimde sayımı yeniden başlatmalı. Çözüm nedir?
Buraya henüz hiç yorum yapılmamış
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır