如何根据另一个单元格文本清除一系列单元格中的数据?

时间:2019-04-15 15:18:02

标签: excel vba

自从我完成VB以来已经有好几年了,并且发现了一些有关我试图创建的代码的类似文章,但老实说,我正在努力使答案适应我所需的宏。

基本上,单元格D6将具有“ Y”或“ N”值,并且每次将值更改为“ N”时,我都需要清除D16:D500范围内的内容。我已经尝试过

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$D$"6)) Is Nothing Then _
Sheets("Sheet1").Range("$D$16:$D$500").ClearContents
End Sub

但无法使其运行。感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您在原始代码中的引号放置错误。试试这个,它检查D6的值。该代码需要放入相应的工作表模块中-右键单击工作表标签,查看代码,然后粘贴。

MainActivity

答案 1 :(得分:0)

只是为了使您的代码像在那儿一样工作。
要获得更好的代码,请检查SJR的答案(包括“ Y” /“ N”部分)。

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("$D$" & 6)) Is Nothing Then  ' Here you were missing a "&" or the 6 had to be in the quote
        Sheets("Sheet1").Range("$D$16:$D$500").ClearContents
    End If 'here you forgot to close the End If

End Sub

最后,这里的常见错误是将代码发布到模块中而不是VBA中的工作表中。