
다음은 두 개의 개별 시트와 필드 사이의 동적 링크 또는 양방향 동기화에 대한 코드입니다. 그러나 A4:A12 및 B7:B15와 같은 다양한 필드를 수행하도록 이를 변경하고 싶습니다. 도와주세요.For 루프를 사용하여 범위를 업데이트했지만 오류 없이 여러 셀을 편집할 수 없습니다.
Sheet1 = dateref 시트의 필드
2개 시트에 대한 VBA 코드입니다.
시트 1에서:
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("A4")) Is Nothing Then
If Target = Range("A4") Then
Sheets("Sheet2").Range("B7").Value = Target.Value
End If
End If
End Sub
시트 2에서:
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("B7")) Is Nothing Then
If Target = Range("B7") Then
If Sheets("Sheet1").Range("A4").Value <> Target.Value Then
Sheets("Sheet1").Range("A4").Value = Target.Value
End If
End If
End If
End Sub
새 코드이지만 두 필드를 동시에 편집하면 오류가 발생합니다.
Private Sub Worksheet_change(ByVal Target As Range)
Rng = Array("B11", "B12")
Rng2 = Array("C13", "C14")
Sched = Sheets("Dateref").Range("A7")
For i = 0 To UBound(Rng) - LBound(Rng)
If Not Intersect(Target, Range(Rng(i))) Is Nothing Then
If Target = Range(Rng(i)) Then
If Sheets(Sched).Range(Rng2(i)).Value <> Target.Value Then
Sheets(Sched).Range(Rng2(i)).Value = Target.Value
End If
End If
End If
Next i
End Sub
답변1
꼭 사용해 보세요
If Not Intersect(Target, Range("A4:A12")) Is Nothing Then
&
Sheets("Sheet2").Range("B7:B15").Value = Target.Value
대신에
If Not Intersect(Target, Range("A4")) Is Nothing Then
&
Sheets("Sheet2").Range("B7").Value = Target.Value