我试图在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
,但没有成功。
非常感谢, 斯特凡诺
答案 0 :(得分:2)
这是因为您正在使用BeforeDoubleClick
事件。
请尝试使用Worksheet_SelectionChange
。