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但没有成功。

非常感谢Stefano

用户名

这是由于您正在使用BeforeDoubleClick事件。尝试Worksheet_SelectionChange改为使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel VBA代码以选择非空单元格

VBA excel:从多个工作簿复制范围单元格

Excel VBA选择通过Find()找到的单元格地址

工作表之间的Excel VBA超链接功能无法激活单元格

在Excel VBA中以不同的顺序使Enter选择单元格

Excel VBA根据工作表名称在单元格上创建下拉列表

使用VBA从Excel工作表中的单元格中删除/修剪空格

Excel VBA根据选择来选择多个单元格

Excel VBA-双击复制下一个可用行中的特定单元格到新工作表

Excel VBA单击由javascript控制的表中的单元格

如果单击了单元格,Excel VBA将显示msgbox

Excel VBA向下选择所有单元格

Excel VBA选择每隔一个单元格

Excel将VBA宏复制单元格循环到新工作表

Excel VBA-如果单元格值满足条件,则在工作表之间复制单元格

Excel VBA:如何在VBA代码中重复双击/单元格编辑操作

Excel 2010在VBA链接的工作表上复制多个单元格

在VBA中在不激活工作表的情况下在指定的Excel工作表上查找单元格

Excel VBA工作表更改,输入一个范围而不是一个单元格

Excel VBA如何使用工作表上的公式编辑每个单元格

VBA Excel保护表

从各种工作簿的各个单元格复制Excel VBA

Excel VBA:工作表受保护时,工作表双击事件不会运行

如果双击时合并单元格,则在 Excel VBA 上标记单元格

Excel vba - 对于选择中的每个单元格

克隆工作表,命名,清除单元格 - Excel VBA

Excel VBA,如果新工作表所在的单元格可见,则在新工作表上显示批注

在另一个工作表中粘贴单元格的位置 - Excel VBA

如何使用 VBA 代码根据单元格值隐藏 Excel 工作表