工作中经常要删除EXCEL行或者列,要删除的数据量比较少的情况下,可以直接手动删除或者筛选后手动删除,要是数据量比较多的话就比较费手了,偷懒使人进步!下面通过删除EXCEL特定行来实例说明:
如图,要求删除每个仓差异都为0的数据,当数据量比较大,条件又比较复杂的情况下,手动就比较尴尬了.我们用两种VBA代码方法来实现:
方法一:
Sub 删除没有差异数据()Dim i, j As IntegerApplication.ScreenUpdating = Falsej = Range("A65536").End(xlUp).RowFor i = j To 6 Step -1If Range("H" & i) = 0 And Range("K" & i) = 0 And Range("N" & i) = 0 ThenRange("H" & i).SelectSelection.EntireRow.Delete Shift:=xlUpEnd IfNextApplication.ScreenUpdating = TrueEnd Sub
方法二:
【用VBA代码删除EXCEL行实例】
Sub 删除没有差异数据数组方法()Dim arr, brr(), i, j, k, zk = Range("N65536").End(xlUp).Rowarr = Range("A6:N" & k)ReDim brr(1 To UBound(arr, 1), 1 To UBound(arr, 2))For i = 1 To UBound(arr)If arr(i, 8) <> 0 Or arr(i, 11) <> 0 Or arr(i, 14) <> 0 Thenj = j1For z = 1 To 14brr(j, z) = arr(i, z)NextEnd IfNextRange("A6:N" & k).ClearContentsRange("A6").Resize(j, 14) = brrEnd Sub
结果如下图:
第一种方法是平时比较常用的,但是效率比较低,要特别注意,最好倒着删行,这个大家可以想想为什么?然后在下面留言,
第二种方法要求VBA基础稍微好点,效率也比较高,也有要注意的地方,比如0开头的文本数字写入到单元格后的问题等.
因为没有什么流量,好久没有写头条了,希望有需要的朋友看过留言,也算有点意义.