Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1709|回复: 6

[已解决]excel VBA 删除多个单元格中都为0或\的行

[复制链接]
发表于 2016-9-21 22:56 | 显示全部楼层 |阅读模式
如表1中,如果定额、净重、定额面积、定额长度单元格的数据为0或者\,,即没有可用数据时,将这行删除。删除后的结果如表1整理所示。
请老师指教!
最佳答案
2016-9-22 09:00
  1. Sub Greenhand()
  2.     Dim i&
  3.     For i = Cells(65536, "n").End(3).Row To 7 Step -1
  4.         If Val(Cells(i, "n")) = 0 Then
  5.             Cells(i, "n").EntireRow.Delete
  6.         End If
  7.     Next
  8. End Sub
复制代码
UNION可能会超限,直接用的循环删除,代码效率可能低点。

syt.rar

28.65 KB, 下载次数: 8

发表于 2016-9-22 07:57 | 显示全部楼层
Sub abc()


For i = ActiveSheet.UsedRange.Rows.Count To 7 Step -1
     If Trim(Cells(i, "p")) = "0" Then Rows(i).Delete
     If Trim(Cells(i, "p")) = "\" Then Rows(i).Delete
Next

End Sub
回复

使用道具 举报

发表于 2016-9-22 08:11 | 显示全部楼层
  1. Sub YuBa()
  2.     Dim i&, j%
  3.     For i = [c65536].End(3).Row To 7 Step -1
  4.         For j = 11 To 14
  5.             If Val(Cells(i, j)) Then Exit For
  6.         Next
  7.         If j > 14 Then Rows(i).Delete
  8.     Next
  9. End Sub
复制代码


syt.rar (31.52 KB, 下载次数: 6)
回复

使用道具 举报

发表于 2016-9-22 09:00 | 显示全部楼层    本楼为最佳答案   
  1. Sub Greenhand()
  2.     Dim i&
  3.     For i = Cells(65536, "n").End(3).Row To 7 Step -1
  4.         If Val(Cells(i, "n")) = 0 Then
  5.             Cells(i, "n").EntireRow.Delete
  6.         End If
  7.     Next
  8. End Sub
复制代码
UNION可能会超限,直接用的循环删除,代码效率可能低点。

评分

参与人数 1 +3 收起 理由
苏子龙 + 3 来学习

查看全部评分

回复

使用道具 举报

发表于 2016-9-22 09:03 | 显示全部楼层
参考附件

syt.rar

32.01 KB, 下载次数: 3

回复

使用道具 举报

 楼主| 发表于 2016-9-22 10:48 | 显示全部楼层
望帝春心 发表于 2016-9-22 09:00
UNION可能会超限,直接用的循环删除,代码效率可能低点。

我是菜鸟,大神能解释一下每一句话的意思吗?
回复

使用道具 举报

发表于 2016-9-22 11:15 | 显示全部楼层
si123yt 发表于 2016-9-22 10:48
我是菜鸟,大神能解释一下每一句话的意思吗?

这是最简单的东西,建议先入门,报班买书箱,系统学点入门知识,我不太会讲,这是入门级的内容了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 10:12 , Processed in 0.419507 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表