VBA:如果用户尝试在受保护的单元中写入,则会显示“更改”消息

时间:2018-10-01 11:06:41

标签: excel vba excel-vba

我有一个Excel工作表,只允许人们在某些单元格中输入值(让我们说Range(“ A10”))。该单元格受到保护,因为它包含一个公式,该公式强制仅显示有限数量的文本,因此excel文件不会在外观上过长。

用户可以双击该单元格,然后弹出一个表单,在该表单中,他/她可以输入想要在单元格中包含的文本。

问题:如果他们没有双击而只是尝试使用键盘选择并插入文本,则会出现典型的错误消息,表明该单元格已受保护。 现在,我要删除该特定单元格/范围的消息,并显示一个MsgBox,上面写着“双击以插入/更改文本”。

您是否知道如何实现?

我已经尝试通过application.onkey事件来解决这个问题(但是我没有找到解决方案来询问是否按下了任何键)。

非常感谢!

1 个答案:

答案 0 :(得分:0)

如何“禁用”完整的消息。在工作表中运行

Private Sub Activate()
Dim sht As Worksheet

    Set sht = ActiveSheet

    With sht
        .Protect Contents:=False
        .EnableSelection = xlNoSelection
    End With

    If sht.Cells.Locked = True Then
        sht.Cells.Locked = False
    End If

    With sht
        .Protect Contents:=True
        .EnableSelection = xlNoSelection
    End With

End Sub