我试图在每次参考列更改时使用另一个参考列(G8:G 508)的内容更新一列(E8:E 508),使用以下代码:
Private Sub Worksheet_Calculate()
Dim Rng As Range
Set Rng = Range("G8:G503")
If Not Intersect(Rng, Range("G8:G503")) Is Nothing Then
Range("E8:E503") = Range("G8:G503").Value
End If
End Sub
代码按预期工作,但似乎一遍又一遍地运行,最终导致Excel崩溃。
发布于 2017-10-17 06:09:49
Range("E8:E503") = Range("G8:G503").Value
触发另一个计算,这会触发事件处理程序等。
要防止这种无止境的循环,您需要在执行之前暂时禁用事件(然后在此之后重新启用)。
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Range("E8:E503").Value = Range("G8:G503").Value
Application.EnableEvents = True
End Sub
https://stackoverflow.com/questions/46782948
复制相似问题