从列B删除空白行

我想删除列B到AD(拉斯特罗)是空白的所有行。 在我的Excel表格每两行左右列B到AD是空白的,所以我想删除这些行。 我一直在尝试使用下面的代码:

Sub T() Dim rng As Range Set rng = Range("B1:AC10402") rng.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

没有成功

这将删除B列中的所有空白行

 Dim LastRow, i As Integer LastRow = activesheet.Cells(activesheet.Rows.Count, "A").End(xlUp).Row For i = LastRow To 1 Step -1 If WorksheetFunction.CountA(Range("B" & i)) = 0 Then Range("B" & i).EntireRow.Delete End If Next i 

如果B列到AC列为空,则删除所有空白行

 Dim LastRow, i As Integer LastRow = activesheet.Cells(activesheet.Rows.Count, "A").End(xlUp).Row For i = LastRow To 1 Step -1 If WorksheetFunction.CountA(Range("B" & i & ":" & "AC" & i)) = 0 Then Range("B" & i & ":" & "AC" & i).EntireRow.Delete End If Next i 

试试这个代码:

 Sub DeleteBlankRows() Dim i As Long Dim lastRow As Long: lastRow = 10 'here you have to specify last row your table uses For i = lastRow To 1 Step -1 If Cells(i, Columns.Count).End(xlToLeft).Column = 1 Then Rows(i).Delete End If Next i End Sub 

小解释

您指定您需要检查行内是否为空,列B到AD。 这段代码Cells(i, Columns.Count).End(xlToLeft).Column将返回最右边(从第一列开始),非空单元格的列。 如果整行是空的,或者第一列有数据,那么它会返回1 – 这是误导,当你考虑A 。 但它不在这里,因为我们考虑从B开始的列。 所以,如果它返回1,这意味着该行是空的,应该被删除。