2つのセル間で双方向接続を行うことは可能ですか


0

Excelシートのユーザーが2つのセルのいずれかにデータを入力し、両方のセルを更新できるようにするにはどうすればよいですか?

  • シート1にセルA4があります。
  • シート2にセルB7があります。

ユーザーがシート1のセルA4に100%と入力すると、セルA4とB7の両方が100%と表示されます。ユーザーがシート2のセルB7に80%と入力すると、セルA4とB7の両方が80%と表示されます。

Excel 2013を使用していますが、2016年にアクセスできます。


2
これは、2つのworksheet_changeイベントでVBAが必要になります
スコットCraner

回答:


0

双方向のデータ入力のために、セル間またはセル範囲間、ワークシート間、またはワークブック間でさえ動的リンクが必要な場合、VBAが唯一のソリューションです。

両方のシートに次の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のコードはシート1を更新します。これが必要ない場合は、Ifステートメント行を削除するだけです。

お役に立てれば。VBAコードをテストして投稿しました。


その働き、、。@ user823527
S

1
私は何年もVBAをやったことがないので、これがどのように機能するかを理解するのに苦労しています(そして、それをテストして何が起こるかを確認するためのExcelへのアクセス権がありません)。私の質問の読み方は、どちらかのセルに新しい値を入力すると、両方のセルが新しい値に更新されることです。新しい値が認識される原因となるトリガーは何ですか?Excelが2つのマクロを実行するシーケンスにより、常に同じセルが「正しい」値を持つものとして認識されるようです。エントリによってそのシートのマクロのみが実行されるのですか?また、両方のマクロを同じにする必要がないのはなぜですか?
fixer1234

Uとマクロの間Sheet1A4Sheet2B7、Uに値を入力Sheet1A4するSheet2B7と、同じ値とその逆に更新されます。それは何TWO WAY CONNECTIONです。ちょうど今、私は再びテストしました、それは私のために正常に動作します、Uもテストが動作します。
ラジェシュS

これは、A4とB7の値をそれぞれ変更するため、どちらのシートでも変更が行われた場合に無条件に正しくなることはありません。たとえば、「Oh、no!」と入力した場合 中A1ワークシートのいずれかの(または任意の他の細胞)、テキスト「ああ、ありません!」表示されますSheet1.A4Sheet2.B7
トムBrunberg

@TomBrunberg。今、私は両方のシートのコードを修正しましたが、「Oh no!」を指摘したように、どちらのワークシートに入力された値も考慮してい ません。A1またはどこかのどちらか更新していませんSheet1.A4Sheet2.B7。ユーザーがセルのいずれかにのみ値を書き込んだ場合、Excelは上記のセルをボットウェイから更新します。ありがとう、あなたは間違いを促しました!
ラジェッシュS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.