VBA循环:如果单元格包含特定值,则删除包含该值的行以及下面的3行

VBA循环:如果单元格包含特定值,则删除包含该值的行以及下面的3行,vba,excel,Vba,Excel,您好,我正在尝试循环一个删除删除的长报告 一般逻辑是这样的:如果脚本在B1列中找到值“DELETE”,那么它应该删除范围“A1:I4”。我有下面的脚本,显然不工作。我试图使用“X”变量找出跨多个列的范围的正确语法。任何帮助都将不胜感激 我有以下循环: Sub RemoveDel() lastrow = Cells(Rows.Count, "B").End(xlUp).Row For x = 1 To lastrow If Range("B" & x).Value = "DELE

您好,我正在尝试循环一个删除删除的长报告

一般逻辑是这样的:如果脚本在B1列中找到值“DELETE”,那么它应该删除范围“A1:I4”。我有下面的脚本,显然不工作。我试图使用“X”变量找出跨多个列的范围的正确语法。任何帮助都将不胜感激

我有以下循环:

Sub RemoveDel()
lastrow = Cells(Rows.Count, "B").End(xlUp).Row
For x = 1 To lastrow

    If Range("B" & x).Value = "DELETE" Then Range("A" & x:"I" & x + 4)).ClearContents

     Next x
End Sub

我想你只需要修正这部分,把冒号放在引号里

If Range("B" & x).Value = "DELETE" Then Range("A" & x & ":I" & x + 4)).ClearContents
编辑

您也可以使用“单元格”而不是第一位的范围

If Cells(x,"B").Value = .....
这对我很有用:

Sub RemoveDel()
lastrow = Cells(Rows.Count, "B").End(xlUp).Row
For x = 1 To lastrow

    If Range("B" & x).Value = "DELETE" Then Range("A" & x & ":I" & x + 4).ClearContents

Next x
End Sub

我想你只需要修正这部分,把冒号放在引号里

If Range("B" & x).Value = "DELETE" Then Range("A" & x & ":I" & x + 4)).ClearContents
编辑

您也可以使用“单元格”而不是第一位的范围

If Cells(x,"B").Value = .....
这对我很有用:

Sub RemoveDel()
lastrow = Cells(Rows.Count, "B").End(xlUp).Row
For x = 1 To lastrow

    If Range("B" & x).Value = "DELETE" Then Range("A" & x & ":I" & x + 4).ClearContents

Next x
End Sub

你会犯什么错误?你到底有什么问题?现在很难用提供的信息帮助您。。。。请澄清!我在尝试运行上述循环时遇到“语法错误”。我相当确定语法是错误的(在“Then”之后),但我不知道如何使用添加了“x”变量的正确语法。请检查括号。这是什么意思?我试图选择范围(“A1:I4”),但使用1作为“x”变量,使用4作为x+3变量。会出现什么错误?你到底有什么问题?现在很难用提供的信息帮助您。。。。请澄清!我在尝试运行上述循环时遇到“语法错误”。我相当确定语法是错误的(在“Then”之后),但我不知道如何使用添加了“x”变量的正确语法。请检查括号。这是什么意思?我试图选择范围(“A1:I4”),但使用1作为“x”变量,使用4作为x+3变量。我从来不知道您可以使用列字母作为
单元格(行、列)的列输入。
!每天学习一些新的东西。第一部分就行了,但“Then”之后的部分行不通。不幸的是,我在尝试您的版本时也遇到了语法错误。只是注意到在.ClearContents之前的末尾似乎有一个额外的(语法错误)。试着很快把它去掉。是的,这很有效,我自己永远也不会想出正确的语法。我注意到这一点。谢谢你的帮助!我从来不知道可以在
单元格(行,列)
上使用列字母进行列输入!每天学习一些新的东西。第一部分就行了,但“Then”之后的部分行不通。不幸的是,我在尝试您的版本时也遇到了语法错误。只是注意到在.ClearContents之前的末尾似乎有一个额外的(语法错误)。试着很快把它去掉。是的,这很有效,我自己永远也不会想出正确的语法。我注意到这一点。谢谢你的帮助!