Excel精英培训网

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

删除不包含关键字的行

[复制链接]
发表于 2014-1-3 10:58 | 显示全部楼层 |阅读模式
关键字的前几个字母都一样是 CSCC/FC 。删除K列不包含这个关键字的整行。我的代码运行不正确,每次都删不完。该如何写
Sub 删除()
For i = 1 To Range("a65536").End(xlUp).Row
If Cells(i, "k") Like "(CSCC/FC*" = False Then Rows(i).Delete
Next
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-1-3 11:03 | 显示全部楼层
加not就成了。
Sub 删除()
For i = 1 To Range("a65536").End(xlUp).Row
If not Cells(i, "k").value  Like "(CSCC/FC*" Then Rows(i).Delete
Next
End Sub
回复

使用道具 举报

发表于 2014-1-3 11:06 | 显示全部楼层
另外,删除时应该从下往上删除。
    Dim i
    For i = Range("a65536").End(xlUp).Row To 1 Step -1
        If Not Cells(i, "k").Value Like "(CSCC/FC*" Then Rows(i).Delete
    Next
回复

使用道具 举报

发表于 2014-1-3 11:08 | 显示全部楼层
  1.     Dim i As Long
  2.     Application.ScreenUpdating = False
  3.     For i = Range("a65536").End(xlUp).Row To 1 Step -1
  4.         If Not Cells(i, "k").Value Like "(CSCC/FC*" Then Rows(i).Delete
  5.     Next
  6.     Application.ScreenUpdating = True
  7.     MsgBox "处理完成"
复制代码

评分

参与人数 1 +1 收起 理由
北漂的猪 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2014-1-3 11:08 | 显示全部楼层
假如只有2行,且都满足删除条件。按1楼的方法:
i=1时,删除第1行,第2行下降,“变”成第1行,
i=2时,第2行已跑到第1行去了,现在是其它内容,比如是空,不符合条件,不执行
这样,在循环结束后,跑第1行去了的第2行就没被删,于是就有了“删不完”的情况。

如果倒序循环就不会出现“删不完”的情况了。因为当删除时,该行之前的内容不受删除影响。

评分

参与人数 1 +1 收起 理由
北漂的猪 + 1 赞一个!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 17:40 , Processed in 0.346835 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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