删除空行直到Last Row变量

时间:2012-12-03 14:32:29

标签: excel excel-vba vba

我正在尝试删除所有空白行,直到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

2 个答案:

答案 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