Excel VBA - Очистить содержимое, если значение ячейки изменяется на многих листах - PullRequest
1 голос
/ 01 июля 2019
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B4")) Is Nothing Then
    Range("H59:CP61").ClearContents
End If
End Sub

Я хочу очистить диапазон при изменении ячейки B4. B4 - это список проверки данных.
Я попытался поместить код в «ThisWorkbook» и в разделе «Модуль», но он не работает ...

Я хочу, чтобы код запускался для всех рабочих листов. Но вместо того, чтобы копировать и вставлять код для каждой рабочей таблицы, как я могу изменить код для работы в «ThisWorkbook» или в разделе «Модуль»?

Уточнение: код должен очищать только содержимое в активном листе, где B4 изменяется

1 Ответ

2 голосов
/ 01 июля 2019

Если вы хотите реализовать событие Change на всех возможных листах, используйте событие _SheetChange книги.

Введите код здесь:

enter image description here

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Intersect(Target, Sh.Range("B4")) Is Nothing Then
        Sh.Range("H59:CP61").ClearContents
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...