【发布时间】:2021-05-14 21:10:00
【问题描述】:
编辑:使这种方式更简单。 Edit2:将 Target.Application 更改为 Application
以下代码应检测 A 列中任何单元格的变化,并将 B 列中相邻单元格的值更改为“成功”。
这行得通,但现在不行了。
Sub Worksheet_Change(ByVal Target As Range)
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
If Not Intersect(ActiveCell, Range("A:A")) Is Nothing Then
ActiveCell.Offset(0, 1).Value = "Success"
End If
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
【问题讨论】:
-
可能需要一个错误处理程序来确保
.EnableEvents = True始终执行,无论是否出现错误。 -
有一定数量的
ActiveSheet引用和对 Range/Cells 的调用,但没有附加合格的工作表对象。解决当前问题后,您还应该考虑修复这些问题,否则您的代码很可能仍然容易出错。 -
@TimWilliams 谢谢!我希望有人能提出这样的建议。
-
您设置为 false
With Target.Application并将With Application设置为 true。你是故意的吗? -
@Toni 不,我正在研究我在堆栈交换上读到的东西。我只是在尽我所能,真的,看看它是否会有所作为。我会换回来的。