Excel VBA-如果单元格值在许多工作表中发生更改,清除内容

时间:2019-07-01 17:15:24

标签: excel vba

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 个答案:

答案 0 :(得分:2)

如果要在每个可能的工作表上实现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