自从我完成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
但无法使其运行。感谢您的帮助!
答案 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中的工作表中。