我正在尝试在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] 删除。
我来说两句