首页 > 解决方案 > 此例程在保护模式下不起作用

问题描述

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim rg As Range
Set rg = Intersect(Target, Range("A1:J10"))
If Not rg Is Nothing And Range("V7") = "YES" Then
[RowNo] = ActiveCell.Row
[ColNo] = ActiveCell.Column

End If
End Sub

…</p>

Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("V7")) Is Nothing Then
    If Target = "NO" Then [AK1:AL1] = 0
End If
End Sub

当工作表处于保护模式时,上述 SelectionChange 不起作用。有什么办法可以纠正这个。在保护模式下,它挂在显示 [RowNo] = ActiveCell.Row 的行上。当工作表不受保护时,这可以正常工作。

标签: excelvbaexcel-formula

解决方案


像这样:

'...
Me.Unprotect                  'in a sheet module Me=the sheet
[RowNo] = ActiveCell.Row
[ColNo] = ActiveCell.Column
Me.Protect
'...

推荐阅读