在Excel中删除增量行

我有一个24小时的全年,每天之间有3个不必要的行(24小时行)的小时数据。 我想删除所有这些不必要的行。 我目前的方法是增加24个空格,删除3行,然后循环回到24个空间增量,直到最后一行(lRow)的值<1,在这种情况下循环将停止。 请参阅下面的我的当前代码:

Sub Delete_Rows() Dim lRow lRow = 9468 Do While lRow >= 1 lRow = lRow - 24 Sheets("Sheet 1").Rows(lRow).Delete lRow = lRow - 1 Sheets("Sheet 1").Rows(lRow).Delete lRow = lRow - 1 Sheets("Sheet 1").Rows(lRow).Delete Loop End Sub 

但是,我一直在这一行上得到运行时错误:1004:

 Sheets("Sheet 1").Rows(lRow).Delete 

我不明白这是为什么,任何帮助或替代方法来实现这个目标,我们感激。

蒂姆是绝对正确的。 现在,我认为一个一个删除行在速度上是昂贵的,所以不妨试试下面。

 Dim c As Range, rngtodelete As Range For Each c in Sheets("SheetName").Range("A1:A9468") 'change this to suit If c.Value <> "" Then If rngtodelete Is Nothing Then Set rngtodelete = c _ Else Set rngtodelete = Union(rngtodelete, c) End If Next If not rngtodelete Is Nothing Then rngtodelete.EntireRow.Delete xlUp 

如果这些行是真正的空白,那么你可以使用SpecialCells在一个单一的拍摄。 假设列A包含空白数据:

 Sub Cull() ' in case there are no blank cells On Error Resume Next Range("A1:A9468").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

你还没有指定你的Excel版本,但是给你的数据布局,你将不会运行到xl07及更早版本中的SpecialCells 8192 Limit 。