Excel VBA – 取消保护单元格select工作表(单击,不双击)

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

对不起,我不是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 

这个代码是完美的工作,当然,如果我双击单元格,但我想知道是否有任何方法使它的工作,如果我只select(单击)单元格?

我尝试使用ActiveCell而不是Target但没有成功。

非常感谢,Stefano

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