我正在尝试删除所有空白行,直到LastRow
变量。下面你会找到我的样品。工作的那个似乎是一个严肃的解决方法,我相信它可能更短/更快,我只是不知道如何去做。
工作 - 严肃的解决方法
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 to LastRow
If Range("A" & i).value = "" then
Range("A" & i).value = "xxxxx"
End if
Next i
For i = 1 to LastRow
If Range("A" & i).value = "xxxxx" then
Range("A" & i).Delete
i = i - 1
End if
Next i
无限循环
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 to LastRow
If Range("A" & i).value = "" then
Range("A" & i).Delete
i = i - 1
End if
Next i
答案 0 :(得分:2)
我没有测试过这段代码,但它应该可以工作(可能需要稍作修改):
Range("A1:A" & LastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
答案 1 :(得分:2)
首先我假设您将计算设置为手动
第二个你有一个for循环,1 = i + 1,你做i = i-1,因此i = i + 1-1无限循环。这也应该在工作解决方案中发生(相同的错误)。
你可以使用选定的步骤进行循环,也可以使用负数。由于删除缩短了范围,您可以从底部开始并立即处理
代码如下:
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = LastRow to 1 Step -1
If Range("A" & i).value = "" then
Range("A" & i).Delete
End if
Next i
如果您希望删除整行,请改用Range("A" & i).EntireRow.Delete
。