根据条件删除指定的行

wxg600308 2007-04-20 10:47:59
下面是根据D列删除等如0值的行,
Set MyRange = Columns("d")
On Error GoTo 0
MatchString = 0
Set C = MyRange.Find(What:=MatchString, After:=MyRange.Cells(1), LookIn:=xlValues, Lookat:=xlWhole)
If Not C Is Nothing Then
Set DelRange = C
FirstAddress = C.Address
Do
Set C = MyRange.FindNext(C)
Set DelRange = Union(DelRange, C)
Loop While FirstAddress <> C.Address
End If
If Not DelRange Is Nothing Then DelRange.EntireRow.Delete
-------------------
但是我要根据两个条件,A列的值和D列等如0值的行
下面的代码:
for r = 2 to 20
if range("a"&r) = "a列的条件值" and range("d"&r) = 0 then
row(r).delete
next r
这段代码不能删除所有符合条件的行
只能跳一行删除,不知为什么?
请高师指点
...全文
251 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
空心兜兜 2007-05-10
  • 打赏
  • 举报
回复
帮顶
satangel522 2007-05-10
  • 打赏
  • 举报
回复
都是高手 学习收藏
dave 2007-05-10
  • 打赏
  • 举报
回复
倒过来:
for r = 20 to 2 step -1
if range("a"&r) = "a列的条件值" and range("d"&r) = 0 then
row(r).delete
next r
zipall 2007-05-02
  • 打赏
  • 举报
回复
For r = 2 To 20
If Range("a" & r) = "a列的条件值" And Range("d" & r) = 0 Then
Rows(r).EntireRow.Delete
r = r - 1 '因为满足条件的行被删除后,未删之前的第r+1行变成了r行,所以不加这句的结果是满足条件被删除的行紧跟的那行被跳过了。
End If
Next r
louief 2007-05-01
  • 打赏
  • 举报
回复
哇,全代码啊?晕,不懂,学习
ljc007 2007-05-01
  • 打赏
  • 举报
回复
学习
呼叫版主
smallcrocodile 2007-04-30
  • 打赏
  • 举报
回复
不懂,研究

6,210

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office应用
社区管理员
  • Microsoft Office应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧