- 帖子
- 109
- 主題
- 1
- 精華
- 0
- 積分
- 116
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2007
- 閱讀權限
- 20
- 註冊時間
- 2016-8-4
- 最後登錄
- 2018-10-22
 
|
10#
發表於 2016-8-21 09:50
| 只看該作者
回復 6# msmplay
後來想了一下,如果沒有一定要用SaveCopyAs的原因,用l大的方式直接SaveAs比較好。
不過最好還是加個if判斷,不然如果關閉的時候選否,備份還是會執行,原來正確的備份就被蓋掉了。
拿網路上跟l大的code組合改了一下,您再參考看看。- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- Dim mypath As String, fname As String
- If Not Me.Saved Then
- Msg = "Do you want to save the changes you made to "
- Msg = Msg & Me.Name & "?"
- Ans = MsgBox(Msg, vbQuestion + vbYesNoCancel)
- Select Case Ans
- Case vbYes
- Me.Save
- Case vbNo
- Me.Saved = False
- Case vbCancel
- Cancel = True
- Exit Sub
- End Select
- End If
-
- If Me.Saved Then
- Application.DisplayAlerts = False '關閉系統警告訊息
- fname = "自動備份" & Format(Date, "yymmdd") & ".xlsx"
- mypath = ThisWorkbook.Path & "\備份\"
- 'ThisWorkbook.Save '要儲存自身檔案,請自行選擇要不要儲存
- ThisWorkbook.SaveAs mypath & fname, FileFormat:=xlOpenXMLWorkbook
- Application.DisplayAlerts = True '開啟系統警告訊息
- Else
- Me.Saved = True
- End If
-
- End Sub
複製代碼 |
|