очистити вміст комірки, коли значення іншої комірки на іншому аркуші змінено


0

Я хочу очистити результат вибору комбобоксу на sheet1 (A1), змінивши значення F4 на sheet2 (це зміна іншим комбобонтом в аркуші 1). Я використовую такий лист на аркуші1:

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 на аркуші1), але якщо зміна стане з іншої комірки (наприклад, якщо у 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 за змінами в події зміни.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.