Excel VBA - 关于单元格选择的Unprotect工作表(单击,不是双击)

时间:2017-11-30 15:16:18

标签: excel vba excel-vba

我试图在Excel 2010中创建一个宏,在单击(不是双击)特定范围内的单元格时取消保护我的工作表,相反,如果我点击在其他地方,我想保护我的工作表。

对不起,我不是VBA专家。

我想出了这段代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("E9:E22,I9:I21,N9:N20,Q9:Q14")) Is Nothing Then

        ActiveSheet.Unprotect Password:="abc"

    ElseIf Intersect(Target, Range("E9:E22,I9:I21,N9:N20,Q9:Q14")) Is Nothing Then

        ActiveSheet.Protect _
        Password:="abc", _
        UserInterfaceOnly:=True, _
        AllowFiltering:=True, _
        AllowSorting:=True, _
        AllowUsingPivotTables:=True

    End If
End Sub

如果显然我双击单元格,这段代码完全有效,但是如果我只选择(单击一个单元格),我想知道是否有任何方法可以使它工作?

我尝试使用ActiveCell代替Target,但没有成功。

非常感谢, 斯特凡诺

1 个答案:

答案 0 :(得分:2)

这是因为您正在使用BeforeDoubleClick事件。 请尝试使用Worksheet_SelectionChange