別のシート上の別のセルの値が変更されたときにセルの内容をクリアする


0

sheet2のF4の値を変更することにより、sheet1(A1)のコンボボックス選択の結果をクリアしたい(この変更はシート1の別のコンボボックスによる)。sheet1で次のコードを使用します。

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("sheet2!F4")) Is Nothing Then

Range("A1").ClearContents

End If

End Sub

問題は、変更されたセル(F4)が空の場合、値の入力または変更は機能する(シート1のA1をクリアする)が、変更が別のセルから行われる場合(たとえば、F4で= D4と入力する場合)のターゲットセル( A1)値を変更してもクリアされません。助けてください...

回答:


2

これはあなたが探しているものですか?

以下のコードをSheet2に貼り付けます。変更が行われている場所だからです。

Private Sub Worksheet_Calculate()
    'On Cell Calculate
    Dim target1 As Range
    Set target1 = Range("F4")

    If Not Intersect(target1, target1) Is Nothing Then
        Call ClearBox
    End If

End Sub

Private Sub Worksheet_Change(ByVal target As Range)
    'On Cell Change
    If target.Address = "$F$4" Then
        Call ClearBox
    End If

End Sub

Private Sub ClearBox()
    'Clear Combo box
    Sheets("Sheet1").Range("A1").ClearContents
End Sub

0

それは仕様です。変更イベントは、セルが編集されたときにのみトリガーされ、数式が再計算されてセル値が変更されたときはトリガーされません。F4に数式がある場合、その数式に寄与するセルを監視する必要があります。この場合、F4に式が含まれている場合、=D4変更イベントの変更についてD4を監視する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.