vba - Excel VBA目标单元格更改然后忽略

标签 vba excel

我有一个宏,可以检测单元格何时更改,并将此数字添加到其上方的单元格中。

但是,然后我需要清除原始单元格,当该单元格再次被更改时,它总是再次触发宏,并且我结束了一个无限循环。有没有办法在宏运行时“忽略”任何其他单元格更改?

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/

相关文章:

vba - 打破创建文件后直接使用时不起作用的外部链接

excel - 形状(工作表)与控件(用户窗体)

excel - 从对象中获取 Processor.Name

vba - 创建临时 Excel 图表

excel - 如何使用 "|"分隔和 utf-8 代码将 Excel 导出到 csv 文件

excel - 未触发 VBA 组合框更改事件

xml - Excel:映射的 XML 数据和 "number stored as text"错误

excel - 是否可以重复特定操作两次但仅在星期一?

excel - Office 脚本,忽略删除范围名称,没有错误

excel - Microsoft Excel 以日期格式复制和粘贴