答案 0 :(得分:1)
不对代码进行重大更改,请尝试以下操作:
For i = lastRow To 1 Step - 1
If Cells(i, "B").Value <> "" Then
Range(Cells(i, "B").Offset(1), Cells(i, "B").Offset(2)).EntireRow.Delete 'delete two below
Cells(i, "B").Offset(-1).EntireRow.Delete ' delete one above
您已进入非空白单元格(即Cells(i,"b")
)。要引用与您已有单元格相关的范围,请使用OFFSET
。
因此,按此顺序,您可以从单元格Offset(1)
下方的一个单元格中选择一系列单元格,然后为这些单元格选择Offset(2)'. Change this range to
ENTIREROW`下方的两个单元格,然后删除。
然后选择Offset(-1)
上方的单元格,选择ENTIREROW
并删除。
答案 1 :(得分:0)
根据您的问题叙述,您可能需要删除列中有空白单元格的所有行&#34; B&#34;
这应该是问题所在(免责声明:在抄板上进行测试!)只需如下所示:
Sub test()
With ActiveWorkbook.Sheets(1)
.Range("A1", .Cells(.Rows.Count, "A").End(xlUp)).Offset(, 1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub