目標:我試圖自動關閉工作簿以更新報告,因爲有用戶打開它們,並忘記在晚上關閉它們。我已將自動關閉時間設置爲上午12點。瞭解自動關閉並保存在Excel中的代碼
問題1:所以我已經有一些針對這個問題的解決方案。我通過在google上進行的一些搜索找到了答案,並結合了幾段代碼來獲得我想要的內容。現在我想知道是否可以在一個模塊或ThisWorkbook中關閉excel vba自動保存&。基本上保留所有的代碼在一個地方。
問題2:我知道第一個和第二個宏工作,我想知道哪個更高效,更乾淨,爲什麼?
1ST MACRO
'插入的ThisWorkbook
Private Sub Workbook_Open()
Static SchedSave
If SchedSave <> 0 Then
Application.OnTime SchedSave, "SaveWork", , False
End If
SchedSave = TimeValue("09:29:00") ' Insert Desired time in Military
Application.OnTime SchedSave, "SaveWork", , True
End Sub
' 插入模塊
Sub SaveWork()
ThisWorkbook.Save
ThisWorkbook.Close
End Sub
2ND MACRO
'插入的ThisWorkbook
Private Sub Workbook_Open()
Reset
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Reset
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Reset
End Sub
' 插入模塊
Sub Reset()
Static SchedSave
If SchedSave <> 0 Then
Application.OnTime SchedSave, "SaveWork", , False
End If
SchedSave = TimeValue("12:00:00") ' 12AM
Application.OnTime SchedSave, "SaveWork", , True
End Sub
Sub SaveWork()
ThisWorkbook.Save
ThisWorkbook.Close
End Sub
還貼出:http://www.mrexcel.com/forum/excel-q...ml#post3830083(這是我得到的幫助來獲得第一宏工作)
這個我會去解決2,你可以接着調用從幾個地方的Reset()ThisWorkbook.Close的SaveChanges:=假 – Nybbe