【发布时间】:2017-04-21 07:10:13
【问题描述】:
我目前正在尝试创建一个循环,该循环将从第 5 行开始查看 C 列,并比较该列中的每个单元格,直到它到达该列中最后使用的单元格。 将针对 8 个变量检查每个单元格以查看其是否匹配。如果单元格不匹配任何变量,则必须删除整行。
我目前的尝试是这样的:
Dim AC as long
Dim LastRow as long
AC=5
LastRow= Activesheet.range("A" & Rows.count).end(xlup).row
For AC = 5 To LastRow
With Cells(AC, "C")
Do Until Cells(AC, "C").Text = OC1 Or Cells(AC, "C").Text = OC2 Or Cells(AC, "C").Text = OC3 Or Cells(AC, "C").Text = OC4 Or Cells(AC, "C").Text = NC1 Or Cells(AC, "C").Text = NC2 Or Cells(AC, "C").Text = NC3 Or Cells(AC, "C").Text = NC4
Rows(AC).EntireRow.Delete
Loop
End With
Next AC
这应该确保一旦删除了一行,就会有新的行取代它(例如,删除整个第 5 行会导致第 6 行变成第 5 行)所以它应该在匹配时退出 Do Loop,抓住下一个行号并重复,直到有另一个匹配。只有代码不断抛出执行中断错误。有人可以告诉我我做错了什么吗?
【问题讨论】:
-
真的会产生错误,还是进入死循环?