4
我試圖編寫一個簡短的宏,這將防止Excel工作簿的用戶關閉工作簿而不保護第一張工作表。Before關閉VBA事件關閉工作簿取消= True時
該代碼顯示消息框,但隨後繼續關閉工作簿。據我瞭解,如果「取消」參數設置爲True,工作簿不應該關閉。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets(1).ProtectContents = True Then
Cancel = False
Else
MsgBox "Please Protect 'Unique Futures' Worksheet Before Closing Workbook"
Cancel = True
End If
End Sub
我只需要代碼以顯示消息框,然後,如果第一片材沒有被保護不會關閉。
我剛試過取消=不是表(1).ProtectContents,它工作正常。你是否瀏覽了代碼? –
您確定索引1的工作表實際上指向您正在測試的工作表嗎?您可以使用VBE中的立即窗口快速測試此功能。 (按CTRL + G打開立即窗口,然後鍵入'?Sheets(1).Name') – user3561813
我將您的代碼粘貼到新工作簿的ThisWorkbook模塊中。當我試圖關閉它時,我收到了消息,工作簿仍然打開。所以,它爲我工作。我想不出如何得到MsgBox,但沒有取消。 –