试试这个
在 aModule
中,声明一个Public
变量
Public CodeChangingCells As Boolean
在所有可以更改相关单元格的 Subs 中设置此变量
Sub SubTahtChangesCells()
On Error GoTo EH
CodeChangingCells = True
Sheet1.[A1] = Sheet1.[A1] + 1
CleanUp:
On Error Resume Next
CodeChangingCells = False
Exit Sub
EH:
' Handle errors
GoTo CleanUp
End Sub
在Cnage
事件中测试这个变量
使用Target
而不是Selection
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r1 As Range
If Not CodeChangingCells Then
Set r1 = Me.Range("A1:B10")
If Intersect(Target, r1) Is Nothing Then Exit Sub ' how to write this line ?
MsgBox "323"
End If
End Sub