相互 link 三个单元格 --> 无限循环?
Mutually link three cells --> infinite loop?
我正在以两种方式 linking 多个单元格,这意味着如果我更改一个单元格,另一个单元格将更新,反之亦然。
此代码非常适用于两个单元格
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B" Then
'Application.EnableEvents = False
Sht_input.Range("E4").Value = Sht_input.Range("B4").Value
'Application.EnableEvents = True
End If
If Target.Address = "$E" Then
'Application.EnableEvents = False
Sht_input.Range("b4").Value = Sht_input.Range("e4").Value
'Application.EnableEvents = True
End If
End Sub
现在,当我尝试 link 三个单元格时,代码进入不定式循环
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B" 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" 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" 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
我试过调试,但我不明白为什么它会回到 "if" 即使不再选择目标单元格。谁能帮帮我?
您需要禁用这些事件。否则它总是运行进入无限循环,单元格值正在改变。是否相同的值无所谓。
Application.EnableEvents = False
If Target.Address = "$B" 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" 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" 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
注意代码开头和结尾所做的更改。
我正在以两种方式 linking 多个单元格,这意味着如果我更改一个单元格,另一个单元格将更新,反之亦然。 此代码非常适用于两个单元格
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B" Then
'Application.EnableEvents = False
Sht_input.Range("E4").Value = Sht_input.Range("B4").Value
'Application.EnableEvents = True
End If
If Target.Address = "$E" Then
'Application.EnableEvents = False
Sht_input.Range("b4").Value = Sht_input.Range("e4").Value
'Application.EnableEvents = True
End If
End Sub
现在,当我尝试 link 三个单元格时,代码进入不定式循环
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B" 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" 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" 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
我试过调试,但我不明白为什么它会回到 "if" 即使不再选择目标单元格。谁能帮帮我?
您需要禁用这些事件。否则它总是运行进入无限循环,单元格值正在改变。是否相同的值无所谓。
Application.EnableEvents = False
If Target.Address = "$B" 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" 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" 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
注意代码开头和结尾所做的更改。