我正在制作电子表格,我只是想知道如何删除列中包含内容的行。
示例:
第1行:工作
第2行:工作
第3行:
我有3行,但只有第1行和第2行第一列有内容(" WORK"),第三行没有任何内容。
我想找到一种方法来删除第一列中包含内容的行。
有人?
答案 0 :(得分:1)
Option Explicit
Sub DeleteNonBlanks()
Dim i As Long
Dim lr As Long
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook '' whatever workbook you need
Set ws = wb.Sheets(1) '' whatever sheet you need
lr = ws.Range("A" & ws.Rows.Count).End(xlUp).Row '' last row
For i = lr To 1 Step -1
If ws.Cells(i, 1).Value <> "" Then
ws.Rows(i).Delete
End If
Next i
End Sub
再解释一下:
您确定需要检查的范围中的底行,然后向后迭代它,测试每行第一列的值。如果该值不为空,则删除该行。
要解释为什么你需要它倒退想象你提供的例子,(前两行中有内容,第三行是空白)。现在将它与我迭代它的例子结合起来,除了这一次从1到最后一行。
你的第一次迭代是第一行,它注意到那里的值,删除该行。现在它下面的一切都向上移动一行(第2行变为第1行,第3行变为第2行,依此类推)。我们的迭代现在查看第2行。第2行中的数据移动到第1行,现在将不会对其进行评估,并且不会删除该行。
希望这有帮助。