【发布时间】:2017-10-17 19:03:23
【问题描述】:
目前我正在使用以下方法从通常有 200 到 700 行的工作表中删除空白行。
Sub DeleteBlankRows2()
Dim i As Integer
Dim lastrow As Long
Dim Emptyrow As Long
lastrow = Application.CountA(Range("a:a"))
Emptyrow = Application.CountA(ActiveCell.EntireRow)
Range("a1").Select
For i = lastrow To 1 Step -1
If Emptyrow = 0 Then
Cells(i, 1).EntireRow.Delete
Else
Cells(i, 1).Offset(1, 0).Select
End If
Next i
End Sub
不幸的是,我遇到了一些问题,因为每次运行时行数都会发生变化。我观察到的是,第一个循环将删除四行,第二个循环删除两行,直到只剩下一行包含信息。不确定为什么要删除 A 列中包含信息的单元格的行?
【问题讨论】:
-
1.
Emptyrow不会重新计算每个循环。 2. 在 A 列上使用 COUNTA 并带有空格会得到一个错误的 lastrow。