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,但没有取消。 –