for循环

时间:2017-03-28 00:31:39

标签: excel vba excel-vba

我正在尝试创建一个代码,在单元格中写入某些文本时删除整行。

Sub Delete_Rows()
For Each c In Range("B1:B20").Cells
    If c.Value = "text" Then
        c.EntireRow.Delete
    End If 
Next c
End Sub

这是我在excel表中写的

excel sheet

问题是当我运行它并且满足删除单元格的条件时,excel会自动滚动到下一行而不评估当前单元格,它会像这样跳过

enter image description here

我再次运行它,只剩下数字4和9中的“文本”

第三次运行后,它最终删除了写有“text”的每个单元格。

我尝试使用while循环,偏移选择,使用整数减去循环迭代和其他几种方法并且没有运气。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

有两个选项:

  1. 从下往上删除,或
  2. 一次删除所有相关行(如下所示):
  3. {{1}}