互相链接三个单元格 – >无限循环?

我用两种方式连接多个单元格,这意味着如果我改变一个单元格,另一个单元格将会更新,反之亦然。 这个代码完美适用于两个单元格

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$4" Then 'Application.EnableEvents = False Sht_input.Range("E4").Value = Sht_input.Range("B4").Value 'Application.EnableEvents = True End If If Target.Address = "$E$4" Then 'Application.EnableEvents = False Sht_input.Range("b4").Value = Sht_input.Range("e4").Value 'Application.EnableEvents = True End If End Sub 

现在,当我试图链接三个单元格时,代码进入了不定式循环

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$4" Then 'Application.EnableEvents = False Sht_input.Range("E4").Value = Sht_input.Range("B4").Value Sht_input.Range("h4").Value = Sht_input.Range("B4").Value 'Application.EnableEvents = True End If If Target.Address = "$E$4" Then 'Application.EnableEvents = False Sht_input.Range("b4").Value = Sht_input.Range("e4").Value Sht_input.Range("h4").Value = Sht_input.Range("e4").Value 'Application.EnableEvents = True End If If Target.Address = "$H$4" Then 'Application.EnableEvents = False Sht_input.Range("b4").Value = Sht_input.Range("H4").Value Sht_input.Range("e4").Value = Sht_input.Range("H4").Value 'Application.EnableEvents = True End If End Sub 

我试图debugging,但我不明白为什么它回到“如果”,即使目标细胞没有被选中了。 谁能帮我吗?

您需要禁用事件。 否则,它将始终运行到无限循环,即正在更改单元格值。 如果它是相同的价值没关系。

 Application.EnableEvents = False If Target.Address = "$B$4" Then Sht_input.Range("E4").Value = Sht_input.Range("B4").Value Sht_input.Range("h4").Value = Sht_input.Range("B4").Value End If If Target.Address = "$E$4" Then Sht_input.Range("b4").Value = Sht_input.Range("e4").Value Sht_input.Range("h4").Value = Sht_input.Range("e4").Value End If If Target.Address = "$H$4" Then Sht_input.Range("b4").Value = Sht_input.Range("H4").Value Sht_input.Range("e4").Value = Sht_input.Range("H4").Value End If Application.EnableEvents = True 

请注意在代码的开始和结束时所做的更改。