如果单元格包含值,Excel VBA删除行

这是我正在进行的一个项目的一部分。 它需要查找与我正在检查的列相同行的单元格中的值。 如果在A中为否或在B中为空,则需要删除该行。 这不起作用,但我不明白为什么。 唉,因为我真的陷入了困境?

`wb1.Worksheets("Loc").Activate For Z = 1 To iNbKids rGeo1 = "a" & Z rGeo2 = "b" & Z If wb1.Worksheets("Loc").Range(rGeo1).Value = "No" Then ActiveSheet.Rows(Z).Select Selection.Delete ElseIf wb1.Worksheets("Loc").Range(rGeo2).Value = " " Then ActiveSheet.Row(Z).Select Selection.Delete End If Next Z` 

简而言之就是当逐个添加或删除行时,向后迭代:

 For Z = iNbKids To 1 Step -1 rGeo1 = "a" & Z rGeo2 = "b" & Z If wb1.Worksheets("Loc").Range(rGeo1).Value = "No" Or wb1.Worksheets("Loc").Range(rGeo2).Value = " " Then wb1.Worksheets("Loc").Rows(Z).Delete End If Next Z 

另外,而不是两个,如果使用一个Or

另一种缩短代码的方法是使用With Block:

 With wb1.Worksheets("Loc") For Z = iNbKids To 1 Step -1 rGeo1 = "a" & Z rGeo2 = "b" & Z If .Range(rGeo1).Value = "No" Or .Range(rGeo2).Value = " " Then .Rows(Z).Delete End If Next Z End With 

没有一切. 在前面会像inputwb1.Worksheets("Loc"). 第一。