Validation Excel:双击前验证、保护和工作表之间的冲突

Validation Excel:双击前验证、保护和工作表之间的冲突,validation,vba,excel,Validation,Vba,Excel,我正在尝试构建一个受保护的工作表,其中一个单元格具有以下特性: 双击单元格将填充“hello” 单元格只能为空或包含单词“hello” 因此,我决定在单元格上进行验证,并在双击()事件之前编写一个工作表 假设是A1号牢房。从空白工作表开始,在B1中输入“hello”,并将A1的验证设置为范围为B1:B2的列表 我的双击事件代码如下: Private Sub worksheet_beforedoubleclick(ByVal Target As Range, Cancel As Boolean)

我正在尝试构建一个受保护的工作表,其中一个单元格具有以下特性:

  • 双击单元格将填充“hello”
  • 单元格只能为空或包含单词“hello”
  • 因此,我决定在单元格上进行验证,并在双击()事件之前编写一个
    工作表

    假设是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”


    知道发生了什么吗?

    保护工作表时,选中“编辑对象”复选框,它就会工作。我不知道为什么,但会的。

    谢谢道格在正确方向上的领导。为了便于将来参考,以下是一个很好的VBA代码段:

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

    这将保护图纸,但允许宏编辑图纸,并清除此处所述的冲突。

    虽然上面关于取消图形对象保护的答案有效,但用户能够右键单击并编辑图形对象形状的最终解决方案并不总是可接受的

    我的解决方法是使用单元格左侧的复选框并添加一个宏,该宏完成了双击操作最初的操作