Excel 如果双击单元格并将其锁定,则显示userform

Excel 如果双击单元格并将其锁定,则显示userform,excel,vba,Excel,Vba,我知道我可以通过以下方式禁用双击: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True End Sub 但问题是,我想为解锁的单元格启用它,以便用户能够双击解锁的单元格 如何使“取消”命令仅对锁定的单元格激活?比如: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Can

我知道我可以通过以下方式禁用双击:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
End Sub
但问题是,我想为解锁的单元格启用它,以便用户能够双击解锁的单元格

如何使“取消”命令仅对锁定的单元格激活?比如:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If ActiveCell.Locked = True Then
    Cancel = True
    NoNoNo.Show (vbmodeless)
    Else

    End If
End Sub
试试看:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Target.Locked = True Then
        Cancel = True
    Else
    NoNoNo.Show (vbModeless)
    End If

End Sub

你所缺少的是
End If
,正如
K.Davis
指出的那样,你应该使用
Target
而不是
Activecell

它有效吗??你的第二个密码。我想你所缺少的只是一个
结尾,如果在你的用户表单显示后
ActiveCell
为什么要使用
Target
而不是
Target
?既然OP是双击的,
Target
ActiveCell
将是一样的。谢谢你的建议!我想说它在我的情况下非常有效。但是,如果在同一工作表上解锁和锁定了单元格,如果双击锁定的单元格,则此解决方案不起作用。双击它只会将指针指向未锁定的单元格。工作表保护是否允许选择已锁定的单元格?如果无法选择锁定的单元格,则无法双击该单元格。