我有一个宏,可以检测单元格何时更改,并将此数字添加到其上方的单元格中。
但是,然后我需要清除原始单元格,当该单元格再次被更改时,它总是再次触发宏,并且我结束了一个无限循环。有没有办法在宏运行时“忽略”任何其他单元格更改?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("B3:O3")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Range(Target.Address).Cells.Count = 1 Then
Range(Target.Address).Offset(-1).Value = Range(Target.Address).Offset(-1).Value + Range(Target.Address).Value
Range(Target.Address).Clear
End If
End If
End Sub
最佳答案
或者简单地添加 Application.EnableEvents
如下:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("B3:O3")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Range(Target.Address).Cells.Count = 1 Then
Application.EnableEvents = False
Range(Target.Address).Offset(-1).Value = Range(Target.Address).Offset(-1).Value + Range(Target.Address).Value
Range(Target.Address).Clear
Application.EnableEvents = True
End If
End If
End Sub
关于vba - Excel VBA目标单元格更改然后忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40235536/