Excel 尝试编辑受保护单元格时自定义消息

Excel 尝试编辑受保护单元格时自定义消息,excel,vba,Excel,Vba,当用户单击受保护的单元格时,我们可以自定义从Microsoft收到的消息吗 我有下面的代码,它不工作,因为它认为。我想在用户单击受保护的单元格或尝试在其上键入时自定义消息 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Locked = True Then Application.Undo MsgBox "You must use the

当用户单击受保护的单元格时,我们可以自定义从Microsoft收到的消息吗

我有下面的代码,它不工作,因为它认为。我想在用户单击受保护的单元格或尝试在其上键入时自定义消息

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Locked = True Then
    Application.Undo
    MsgBox "You must use the Data Entry Form to enter data in this cell"
End If
Application.EnableEvents = True
End Sub

我仍然会收到如下默认消息

如何在上面的宏中添加一行类似于以下内容的代码:
此工作簿。工作表(“Sheet1”)。取消“yourPasswordHere”的保护
?@Ralph我不希望用户编辑工作表,除非他在第一张工作表上将下拉列表值更改为“是”。如果该值设置为“否”,并且用户尝试编辑工作表。他应该会得到一个提示,说“更改我要查找的第一条消息提示的值”,对不起,我不是很清楚:如果您想要默认消息,那么您将锁定工作表,从而获得上面的消息框。如果您想使用自己的消息框创建自己的锁定机制,则可以解锁工作表,然后自己在宏中撤消所有操作。不管是哪种方式,您都应该注意到Excel中没有真正的安全性,而且(几乎)任何人——稍有悟性的人——都可以覆盖这些锁定机制。所以,我不会太依赖这些。无论如何,如果您可以选择使用已实现的锁定机制,使用工作表保护而不是“自定义宏代码”保护,那么在上面的宏中添加一行类似于以下内容的代码如何:
ThisWorkbook.Worksheets(“Sheet1”)。取消“yourPasswordHere”的保护。
?@Ralph我不希望用户编辑工作表,除非他将第一页上的下拉列表值更改为“是”。如果该值设置为“否”,并且用户尝试编辑工作表。他应该会得到一个提示,说“更改我要查找的第一条消息提示的值”,对不起,我不是很清楚:如果您想要默认消息,那么您将锁定工作表,从而获得上面的消息框。如果您想使用自己的消息框创建自己的锁定机制,则可以解锁工作表,然后自己在宏中撤消所有操作。不管是哪种方式,您都应该注意到Excel中没有真正的安全性,而且(几乎)任何人——稍有悟性的人——都可以覆盖这些锁定机制。所以,我不会太依赖这些。无论如何,如果可以选择,请使用已实现的锁定机制,使用工作表保护,而不是“自定义宏代码”保护