Excel精英培训网

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

怎么根据某个条件删除指定行

[复制链接]
发表于 2022-10-19 18:57 | 显示全部楼层 |阅读模式
大神帮忙看下,两个思路:
1:判断E8单元格到最后一行是否为空单元格,空的保留,非空的删除整行;
2:判断E8单元到最后一行的单元格包含“22”的删除整行,否则留下
需要注意的时候实际运行数据行数最多有几万行的,请大神考虑删除速度,数据多了不要删半天才删掉还不如手工筛选,就没意义了。谢谢大神。

QQ截图20221019185124.png
删除指定行.zip (7.45 KB, 下载次数: 10)
发表于 2022-10-19 20:06 | 显示全部楼层
回复

使用道具 举报

发表于 2022-10-19 20:07 | 显示全部楼层
单元格包含“22”的删除整行,这个22是开头数字,还是在一串数字中的任意位置呢?

删除.rar

17.13 KB, 下载次数: 0

回复

使用道具 举报

发表于 2022-10-19 20:08 | 显示全部楼层
本帖最后由 superboy_713 于 2022-10-19 20:12 编辑

单元格包含“22”的删除整行,这个22是开头数字,还是在一串数字中的任意位置呢?

删除.rar

17.13 KB, 下载次数: 2

回复

使用道具 举报

发表于 2022-10-19 20:09 | 显示全部楼层
太简单,不去下载附件了。把sheets(1)改成要操作的工作表名即可。

Sub text()
Dim X&, Y&, arr
Sheets(1).Select
X = Range("A" & Cells.Rows.Count).End(xlUp).Row
arr = Range("E8:E" & X)
For Y = 1 To UBound(arr)
If arr(Y, 1) Like "*22*" Then
    arr(Y, 1) = ""
End If
Next Y
Range("E8:E" & X) = arr
Range("E8:E" & X).SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete


End Sub
回复

使用道具 举报

发表于 2022-10-19 20:43 | 显示全部楼层
1:判断E8单元格到最后一行是否为空单元格,空的保留,非空的删除整行;
2:判断E8单元到最后一行的单元格包含“22”的删除整行,否则留下

我以为你空的要删除
删除非空的肯定包含“22”的也会删除
其实不论是那种需求都没必要用VBA,EXCEL表格的定位就可以选中这些单元格,然后删除整行就可以了
回复

使用道具 举报

发表于 2022-10-20 10:07 | 显示全部楼层
如果非用VBA来处理,如在工作表中运行删除行的时候,以倒循环从后删起,不会漏删除,如用数组来循环就不需要考虑这个问题。根据您的需求,以判断包含某值为条件删除为佳。就您这表格而言,楼上高手说得对,使用技巧简单方便,没有必要用VBA,直接定位并删除行即可
回复

使用道具 举报

 楼主| 发表于 2022-10-20 12:23 | 显示全部楼层
changking123 发表于 2022-10-19 20:09
太简单,不去下载附件了。把sheets(1)改成要操作的工作表名即可。

Sub text()

您这个代码速度快,但是删除的内容不对,可能是我表述复杂了!
简单点就是E列包含*22*则删整行,不含22的都留下
回复

使用道具 举报

发表于 2022-10-20 16:05 | 显示全部楼层
透明世界1987 发表于 2022-10-20 12:23
您这个代码速度快,但是删除的内容不对,可能是我表述复杂了!
简单点就是E列包含*22*则删整行,不含22 ...

Sub demo()
    Application.DisplayAlerts = False
    Set Rng = Sheets(1).Range("A7:A" & Sheets(1).[A7].End(4).Row).Offset(, 4)
    Rng.NumberFormat = "@"
    Rng.Value = Application.Text(Rng.Value, "0;;;@")
    Rng.AutoFilter Field:=1, Criteria1:="*22*"
    Rng.Offset(1).EntireRow.Delete
    Rng.AutoFilter
    Rng.NumberFormat = "General"
    Rng.Value = Rng.Value
End Sub

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 05:59 , Processed in 0.827152 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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