如果条件符合单元格,如何删除行

时间:2017-09-07 08:22:26

标签: excel vba excel-vba if-statement

如果行的单元格范围遵循if条件,我创建了一个宏来删除整行。到目前为止的问题是宏实际上没有删除应该删除的所有行,我不知道为什么。我已经测试了很多次但没有结果。我应该提一下,该范围是从另一个工作表中复制粘贴的,但我已经使这部分工作了。所以,我不认为那里有问题。我提供了我的Excel工作表的截图和下面的代码。

enter image description here

Suppliers.propTypes = {
    match: PropTypes.object.isRequired,
    location: PropTypes.object.isRequired,
    history: PropTypes.object.isRequired
  }

2 个答案:

答案 0 :(得分:4)

删除行时,您需要向后循环。

使用下面的循环并将其替换为最后一个循环:

Thread.Sleep

注意:您可以使用Dim i As Long With Sheets("Report_Copy") lastrow3 = .Cells(.Rows.Count, "K").End(xlUp).Row For i = lastrow3 To 25 Step -1 Set cell = .Range("L" & i) If cell.Value < 0.5 And cell.Offset(0, 1).Value < 0.5 And cell.Offset(0, 2).Value < 0.5 And cell.Offset(0, 3).Value < 0.5 And cell.Offset(0, 4).Value < 0.5 And cell.Offset(0, 5).Value < 0.5 And cell.Offset(0, 6).Value < 0.5 And cell.Offset(0, 7).Value < 0.5 And cell.Offset(0, 8).Value < 0.5 And cell.Offset(0, 9).Value < 0.5 Then cell.EntireRow.Delete End If Next i End With 函数使用相同的标准<0.5重新生成多个单元格条件:

CountIf

答案 1 :(得分:1)

当删除行索引移动到循环中的下一个元素时。如果两行符合要求,则不会删除底行。

用于下一个循环。示例删除了stop中值为1的所有行:

range(A1:A4)