Excel:在双击之前禁用有关尝试更改受保护单元格的警报
我有一个工作表,它有一个受保护的单元格范围。这些单元格中有名称,我希望有一个before双击事件,该事件显示一个表单,并根据双击单元格中的名称在表单中预加载信息 我使用双击,这样用户在第一次单击时就可以选择单元格,然后我可以使用Excel:在双击之前禁用有关尝试更改受保护单元格的警报,excel,vba,Excel,Vba,我有一个工作表,它有一个受保护的单元格范围。这些单元格中有名称,我希望有一个before双击事件,该事件显示一个表单,并根据双击单元格中的名称在表单中预加载信息 我使用双击,这样用户在第一次单击时就可以选择单元格,然后我可以使用ActiveCell.Value获取名称并加载适当的信息 但是,由于我已经保护了该范围,当我双击单元格时,会出现excel提示,提示 您试图更改的单元格或图表受保护,因此为只读 要修改受保护的单元格或图表,请首先使用“取消工作表保护”命令(查看选项卡,更改组)删除保护。可
ActiveCell.Value
获取名称并加载适当的信息
但是,由于我已经保护了该范围,当我双击单元格时,会出现excel提示,提示
您试图更改的单元格或图表受保护,因此为只读
要修改受保护的单元格或图表,请首先使用“取消工作表保护”命令(查看选项卡,更改组)删除保护。可能会提示您输入密码
表单仍按计划触发,但我想阻止excel提示的发生。有没有办法禁用提示?如果没有,是否有我没有想到的另一种方法?对于您的特殊情况,之所以会发生这种情况,是因为您启用了工作簿选项“允许在单元格中直接编辑”-可在此处找到: 可通过代码进行设置,例如:
Application.EditDirectlyInCell = True
因此,当您双击事件激发,但下一步操作是输入要编辑的单元格时,由于您已保护该单元格,因此会收到警报。防止警报的最简单方法是在“编辑”阶段发生之前取消事件-您只想使用事件启动表单,对吗?因此,事件处理程序如下所示:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim varValue As Variant
'get the cell value
varValue = ActiveCell.Value
'do something with it - you can launch your form here
MsgBox CStr(varValue)
' NOTICE here that you can cancel the double click event
' meaning no attempt to edit the cell will be made per the users double click
Cancel = True
End Sub
嗨…………通过代码取消对该工作表的保护。表2.取消保护“pwd”