VBA – Worksheet_Calculate事件触发一遍又一遍

我试图每次更改引用列时使用另一个引用列(G8:G508)的内容更新列(E8:E508),使用以下代码:

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。 任何人都可以协助 – 在此先感谢!

 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 

尝试这个

 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Dim Rng As Range Set Rng = Range("G8:G503") If Not Intersect(Rng, Target) Is Nothing Then Range("E8:E503") = Rng.Value End If Application.EnableEvents = True End Sub