我希望两个单张中的两个单元格总是相等的,但是对于任何一个单元格来说,它们都有各自不同的公式、列表或输入。我使用了下面的代码,它可以工作,但只需要修复错误。
仪表板
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$I$20" Then
Sheets("Questionnaire").Range("$AH$15") = Sheets("Dashboard").Range("$I$20").Value
End If
End Sub调查表
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$AH$15" Then
Sheets("Dashboard").Range("$I$20") = Sheets("Questionnaire").Range("$AH$15").Value
End If
End Sub请帮我找出错误?
发布于 2017-04-10 20:45:22
尝试在设置每个处理程序的单元格值之前添加Application.EnableEvents = False,例如:
仪表板
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$I$20" Then
Application.EnableEvents = False
Sheets("Questionnaire").Range("$AH$15") = Sheets("Dashboard").Range("$I$20").Value
Application.EnableEvents = True
End If
End Sub调查表
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address = "$AH$15" Then
Application.EnableEvents = False
Sheets("Dashboard").Range("$I$20") = Sheets("Questionnaire").Range("$AH$15").Value
Application.EnableEvents = True
End If
End Sub不过,请记住,设置值将覆盖输入的任何公式。
发布于 2017-04-10 21:53:18
可以使用工作簿级事件将其放置在工作簿代码窗格中:
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Source As Range)
Select Case sh.Name & Source.Address
Case "Dashboard$I$20"
Equalize "Questionnaire", "$AH$15", Source
Case "Questionnaire$AH$15"
Equalize "Dashboard", "$I$20", Source
End Sub
Sub Equalize(targetShName As String, targetCellAddr As String, source As Range)
Application.EnableEvents = False
Sheets(targetShName).Range(targetCellAddr).Value = source.Value
Application.EnableEvents = True
End Ifhttps://stackoverflow.com/questions/43332372
复制相似问题