繁体   English   中英

如何使用VBA在Excel中删除整个列

[英]How to delete Entire Column in excel using vba

我想在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

我尝试了上面的代码来删除空列,但是它并没有一次运行就删除所有空列。

Scott Craner正好可以反向循环,我将添加另一条有价值的信息,这将有助于处理时间,特别是如果您有许多行的数据,因为删除整列可能会占用大量资源。

以下代码将仅删除存储实际数据的行的空白列。 假定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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM