我正在尝试构建一个受保护的工作表,其中一个单元格具有以下特性:
所以我决定对单元格进行验证,然后编写worksheet_beforeDoubleClick()
事件。
让我们说它是单元格A1。从空白工作表开始,在B1中输入“hello”,并将A1的验证设置为范围为B1:B2的列表。
我的双击事件代码如下:
Private Sub worksheet_beforedoubleclick(ByVal Target As Range, Cancel As Boolean)
If Target.Row = 1 And Target.Column = 1 Then
Target.Value = "hello"
End If
End Sub
此代码和验证在工作表未受保护时正常工作;双击时,单元格会填充“hello”。
但是,一旦工作表受到保护,双击单元格A1会将鼠标指针变为沙漏,直到我按下Esc或单击另一个单元格;单元格中没有填充单词“hello”。
知道发生了什么事吗?
答案 0 :(得分:3)
当您保护工作表时,请选中“编辑对象”复选框,它将起作用。不知道为什么,但它会。
答案 1 :(得分:3)
感谢Doug在正确的方向上取得领先。为了将来参考,一个很好的VBA代码段是:
ActiveSheet.Protect UserInterfaceOnly:=True, DrawingObjects:=False
这将保护工作表,但允许宏编辑工作表,以及清除此处描述的冲突。
答案 2 :(得分:1)
尽管以上关于取消保护图形对象的答案有效,但关于用户能够右键单击并编辑图形对象形状的最终解决方案并不总是可以接受的。
我的解决方法是使用单元格左侧的复选框,并添加一个宏,该宏完成了我双击动作的原本操作。