如何使用vba删除excel中的整个列

时间:2016-06-02 19:22:12

标签: excel-vba vba excel

我想删除excel中的空列,请查看以下代码并提出更正建议。

Sub RemoveEmptyCol()
Dim lc As Double
lc = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To lc
If Cells(1, i).Value = "" Then
Cells(1, i).EntireColumn.Delete
End If
Next i
End Sub

我尝试使用上面的代码来移除空列,但它没有在单次运行中删除所有空列。

1 个答案:

答案 0 :(得分:1)

Scott Craner正在向后循环,我将添加另一个有价值的信息来帮助处理时间,特别是如果你有很多行数据,因为删除整个列可能会占用大量资源。 / p>

以下代码将仅删除存储实际数据的行的空白列。它假设列A已填入整个行集。如果不是,则根据列的任何内容进行调整。

Sub RemoveEmptyCol()

    Dim lc As Long, lr as Long
    lc = Cells(1, Columns.Count).End(xlToLeft).Column
    lr = Cells(Rows.Count,1).End(xlUp).Row

    For i = lc To 1 Step -1

        If Cells(1, i).Value = "" Then 

            Range(Cells(1, i),Cells(lr,i).Delete Shift:=xlToLeft

        End If

    Next i

End Sub