【发布时间】:2015-12-06 01:11:07
【问题描述】:
我正在尝试为 excel 编写一个 VBA 代码,该代码根据某些单元格的内容(都在同一列中)删除行。我的程序现在看起来像这样:
Sub removeCol()
Dim i As Integer
i = 1
Do While i < 10
If (Cells(i, 2).Text = "a") Then
Rows(i).Delete
i = i + 1
Else
i = i + 1
End If
Loop
End Sub
如果有任何提示,我将不胜感激!现在这个东西根本没有任何影响。
【问题讨论】:
-
首先:你必须从列表的底部到顶部。想象一下,你在第 5 行和第 6 行有两个“a”。当你自上而下时,你会首先找到第 5 行并将其删除。因此,所有行都将移至顶部...因此第 6 行将成为新的第 5 行。但在下一个循环中,您检查新的第 6 行(在第一次删除之前是第 7 行)。看到了吗?
-
第二 - 不是那么重要 - 最好使用 For-Next 以防循环中有计数器。
-
Here 有无数种方法可以做到这一点。