您可以使用Workbook_BeforeSave
事件在ThisWorkbook
對象捕獲用戶選擇另存爲(或使用鍵盤快捷鍵),這會導致顯示「另存爲」提示並將SaveAsUI
設置爲true。如果SaveAsUI
爲真,這意味着用戶正在嘗試將文件另存爲其他內容,因此您可以取消另存爲操作。
打開Visual Basic窗口(Alt + F11)並將以下代碼放入ThisWorkbook
。
禁用另存爲
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If (SaveAsUI = True) Then
MsgBox "Sorry. I can't have you saving this file as something else."
Cancel = True
End If
End Sub
您可以刪除MsgBox
行,如果你想;我把它放在那裏作爲一個例子,如果你想通知功能被禁用
要禁用都保存和另存爲功能的用戶,您將消除if
語句並取消保存操作,不管是否顯示另存爲提示。
禁用保存,另存爲
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Sorry. I can't have you saving this file at all."
Cancel = True
End Sub
如果你只是想禁用保存操作,你只需要尋找其中用戶節省的發生,但SaveAsUI是不會顯示(即用戶只是簡單地保存該文件)。
禁用另存
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If (SaveAsUI = False) Then
MsgBox "Sorry. I can't have you saving any updates to this file."
Cancel = True
End If
End Sub
最後請注意,用戶仍然會得到一個提示保存,如果用戶直接關閉該文件。用戶將無法保存並且該文件將關閉,但如果您希望體驗更清晰一些,則需要進行其他更改。當用戶關閉文件時,Excel會檢查ThisWorkbook.Saved
變量以查看文件是否已保存。如果它是假的,它會提示用戶保存文件。爲了防止這種情況,以及,我們可以設置這個布爾真不保存,因而「欺騙」的Excel,以爲該文件已保存
禁用保存,另存爲,包括用戶後試圖關閉文件
在您的Workbook_BeforeSave
代碼後面添加以下代碼。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Saved = True
MsgBox "Click OK to continue closing this file. Changes will not be saved."
End Sub
此代碼工作正常,只是試試看。 – mutanic
Jaycal,用戶仍然可以通過按Ctrl + S來執行保存,也許你可以這樣說(在SaveAsUI之外):If(Cancel = false)Then Cancel = true – mutanic
感謝您的關注。 OP實際上只是要求「另存爲」功能被禁用,所以這是我提供的代碼。爲了使答案更加完整,現在顯示如何禁用「僅保存」,「僅另存爲」或「另存爲」。 – Jaycal