2 つのセル範囲間の双方向同期または動的リーク

2 つのセル範囲間の双方向同期または動的リーク

以下は、2 つの別々のシートとフィールド間のダイナミック リンクまたは双方向同期のコードです。ただし、これを変更して、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

新しいコードですが、2 つのフィールドを一度に編集するとエラーが発生します。

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

関連情報