2017-11-07 15 views
0

複数のワークシートを持つExcelワークブックがあります。 WORKSHEET Aには、範囲名TRACK1のセルと、範囲名TRACK2のWORKSHEET Bのセルがあります。Excel変更されたマクロを使用して異なるシートに2つのセルをリンクする

各TRACK1とTRACK2はリストから検証されます。ユーザーは、セルが選択されたときに表示されるドロップダウンリストからいずれかのセルを変更できます。

ユーザーに変更を許可し、もう一方を変更して一致させたい場合もあります。 TRACK1とTRACK2の変更値が変更され、TRACK1とTRACK2の変更値が変更されます。

私はこの基本的なマクロを行う方法を知っていますが、イベントの伝搬を停止する方法はありますか?ワークシートAのコードモジュールで

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Not Application.Intersect(Target, Range("TRACK1")) Is Nothing Then 
     Range("TRACK2") = Range("TRACK1") 
    End If 

    If Not Application.Intersect(Target, Range("TRACK2")) Is Nothing Then 
     Range("TRACK1") = Range("TRACK2") 
    End If 

End Sub 

答えて

1

、使用:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False 
    If Not Application.Intersect(Target, Range("TRACK1")) Is Nothing Then 
     Worksheets("WORKSHEET B").Range("TRACK2") = Range("TRACK1") 
    End If 
    Application.EnableEvents = True 
End Sub 

ワークシートBのコードモジュール、使用中:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False 
    If Not Application.Intersect(Target, Range("TRACK2")) Is Nothing Then 
     Worksheets("WORKSHEET A").Range("TRACK1") = Range("TRACK2") 
    End If 
    Application.EnableEvents = True 
End Sub 
+0

こんにちは@ YowE3Kなぜ私が取得されます 'エラー1004:メソッド '範囲 "(TRACK1")=範囲( "TRACK2") – TheRealPapa

+0

ツールボックスの下の左のネーミングボックスを使用してセルの名前を付けました。私は '= TRACK1'を実行することで、どのブックの各セル値にもアクセスできます。これらは、ワークブックの権利のグローバルな範囲ですか? Range( "TRACK1")= Sheets( "Sheet3")。Range( "TRACK2") 'しかし、 'subscript out of range'エラーで失敗しました。 – TheRealPapa

+0

アクティブなシートにない範囲参照を修飾する必要があるように見えます。私は変更をします。 – YowE3K

関連する問題