我想要一个宏代码,(1)从第3行开始,(2)并删除其B列中的单元格为空的任何行。我试过......
Sub DelBlankRows()
Columns("B:B").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
End Sub
并且
Sub delrows()
Range("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
答案 0 :(得分:0)
最好也是定义工作表:
Sub test()
Worksheets("sheet1").Range("B:B").SpecialCells(xlCellTypeBlanks).EntireRow.Delete shift:=xlUp
End Sub
将删除列B为空的每一行。
如果您需要从第3行开始直到最后一行:
Sub test()
Dim lr As Double
lr = Worksheets("Sheet1").Range("B65536").End(xlUp).Row
Worksheets("Sheet1").Range("B3:B" & lr).SpecialCells(xlCellTypeBlanks).EntireRow.Delete shift:=xlUp
End Sub
答案 1 :(得分:0)
有可能,你将把这个循环到某个东西...... 给出的简明答案不会“更新”循环的行索引。我提出了一个更清晰的选项,可能适合你正在做的事情:
伪代码
For row = start To rowcount
If cells(row,column).Value = "" Then
Cells(row,column).EntireRow.Delete shift:=xlUp
row = row-1 'this is because the xlUp shift changes index for all rows BELOW your loop
End If
Next row