首页 > 解决方案 > 循环从列中删除空白单元格

问题描述

我需要从 F4 开始删除 F 列中的空白单元格。每行会有 0 到很多个空白单元格。

我对编码很陌生,我最成功的方法是采用做类似事情的代码并将其蚕食。

这是适用于类似情况的代码:

Sub test()
Dim i As Long
With Worksheets("Sheet1")
    For i = 4 To .Cells(.Rows.Count, "F").End(xlUp).Row
        Do While .Cells(i, "F").Value2 = .Cells(1, "B").Value2 And Not 
IsEmpty(.Cells(i, "F"))
            .Cells(i, "F").Resize(1, 4).Delete shift:=xlToLeft
        Loop
Next i
End With
End Sub

这就是我试图用它做的事情:

Sub test()
Dim i As Long
With Worksheets("sheet1")
For i = 4 To .Cells(.Rows.Count, "F").End(xlUp).Row
    Do While .Cells(i, "F").Value2 = ""
        .Cells(i, "F").Resize(1, 4).Delete shift:=xlToLeft
    Loop
Next i
End With
End Sub

运行它时我没有收到任何错误,但它也不起作用。

任何指导表示赞赏!

标签: vbaexcel

解决方案


您通过将单元格向右移动到它们的位置来删除空白单元格。如果这些单元格也是空白的,则似乎没有任何变化。如果您想删除整行,请将您的代码更改为:

Sub test()
Dim i As Long
With Worksheets("sheet1")
For i =  .Cells(.Rows.Count, "F").End(xlUp).Row to 4 Step-1
    IF .Cells(i, "F").Value2 = ""
        .Cells(i, "F").entirerow.Delete shift:=xlUp
    Loop
Next i
End With
End Sub

推荐阅读