Excel:validation,保护和worksheet_beforeDoubleClick之间的冲突

我试图build立一个受保护的工作表,其中一个单元格具有以下特质:

  1. 双击单元格填入“hello”。
  2. 单元格只能是空白或包含单词“你好”。

所以我决定在单元格上进行validation,然后编写一个worksheet_beforeDoubleClick()事件。

假设它是单元格A1。 在一个空白的工作表开始,在B1中input“hello”,并将A1的validation设置为范围为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 

这个代码和validation工作正常,而工作表是不受保护的; 单元格在双击时填充“hello”。

但是,一旦表单被保护,双击单元格A1将鼠标指针变成一个沙漏,直到我按Esc或单击另一个单元格; 单元格不填充单词“你好”。

任何想法发生了什么?

当你保护工作表时,选中“编辑对象”checkbox,它将起作用。 不知道为什么,但它会的。

感谢道格正确的方向。 为了将来的参考,一个好的VBA片段是这样的:

 ActiveSheet.Protect UserInterfaceOnly:=True, DrawingObjects:=False 

这将保护工作表,但允许macros编辑工作表,并清除此处所述的冲突。