Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

数据透视表40+个常用小技巧,让你一次学会!
查看: 104|回复: 9

[已解决]删除指定的内容数据所在行的上一行

[复制链接]
发表于 2022-6-18 19:06 | 显示全部楼层 |阅读模式
怎么删除A列带有“,TA”字符的上一行数据,并删除空行?
我识了两个都不行,希望老师们帮一下,也可以新编辑一个,看老师哪种方便,谢谢。


最佳答案
2022-6-19 06:15
HEDAYONG 发表于 2022-6-18 21:13
刚才下载后试了多次,显示不对,附件下图为刚才您的代码出来的,上图是我要的。辛苦您了。。。

不好意思,是我疏忽了,从上方开始删除,因为中间有删除过程,导致下方单元格上移,下方单元格再次判断不正确,所以结果不对,应该从下方开始删除,这样下方单元格上移,但上方单元格不会发生变化,删除才是正确的,你再试试

删除指定数据所在行的上一行 - 副本.rar

38.72 KB, 下载次数: 4

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-6-18 20:46 | 显示全部楼层
你看看,不知是不是这样

删除指定数据所在行的上一行 - 副本.rar

36.84 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2022-6-18 21:13 | 显示全部楼层
psxk3535028-1 发表于 2022-6-18 20:46
你看看,不知是不是这样

刚才下载后试了多次,显示不对,附件下图为刚才您的代码出来的,上图是我要的。辛苦您了。。。

删除指定数据所在行的上一行 - 新.rar

134.93 KB, 下载次数: 4

回复

使用道具 举报

发表于 2022-6-19 06:15 | 显示全部楼层    本楼为最佳答案   
HEDAYONG 发表于 2022-6-18 21:13
刚才下载后试了多次,显示不对,附件下图为刚才您的代码出来的,上图是我要的。辛苦您了。。。

不好意思,是我疏忽了,从上方开始删除,因为中间有删除过程,导致下方单元格上移,下方单元格再次判断不正确,所以结果不对,应该从下方开始删除,这样下方单元格上移,但上方单元格不会发生变化,删除才是正确的,你再试试

删除指定数据所在行的上一行 - 新.rar

132.15 KB, 下载次数: 8

评分

参与人数 1学分 +2 收起 理由
HEDAYONG + 2 学习了

查看全部评分

回复

使用道具 举报

发表于 2022-6-19 10:15 | 显示全部楼层

請測試看看,謝謝
Sub test()
Dim xR As Range, xU As Range
For Each xR In Range("a5:a" & [a65536].End(3).Row).Rows
    If InStr(xR, "TEXT") Then GoTo 99
    If InStr(xR, "TA") Then GoTo 99
    If xU Is Nothing Then Set xU = xR Else Set xU = Union(xR, xU)
99: Next
If Not xU Is Nothing Then xU.EntireRow.Delete
End Sub

评分

参与人数 1学分 +2 收起 理由
HEDAYONG + 2 我和小伙伴都惊呆了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2022-6-19 12:40 | 显示全部楼层
sam-wang 发表于 2022-6-19 10:15
請測試看看,謝謝
Sub test()
Dim xR As Range, xU As Range

谢谢老师,非常棒。
回复

使用道具 举报

 楼主| 发表于 2022-6-19 12:41 | 显示全部楼层
sam-wang 发表于 2022-6-19 10:15
請測試看看,謝謝
Sub test()
Dim xR As Range, xU As Range

谢谢老师,非常棒。
回复

使用道具 举报

 楼主| 发表于 2022-6-19 13:03 | 显示全部楼层
sam-wang 发表于 2022-6-19 10:15
請測試看看,謝謝
Sub test()
Dim xR As Range, xU As Range

刚试了下,两个都能用,4楼老师的代码,如果连续按下去的话,会再次删除有用的代码,5楼老师的代码,点N次后,结果都是对的。
以上,谢谢老师们。
回复

使用道具 举报

发表于 2022-6-19 14:45 | 显示全部楼层
刚才看了一下 sam-wang 老师的代码,感觉就是凡含“TEXT” 和“TA”的都保留,其他的均删除,所以,点多少次含“TEXT” 和“TA”的都不会再删除,我的代码是根据你的要求,删除含"TA"上一行的数据,没有考虑上一行是不是含"TA",又没有考虑是否含“TEXT”,就是第一次运行,如果上一行含"TA"也会删除,如果只是保留含“TEXT” 和“TA”的数据,反而容易了。但看代码,数据多了的话, sam-wang 老师的代码运行速度应该更快,我也是新手,对xU Is Nothing Then Set xU = xR用法不熟悉,还要好好学习啊。

删除指定数据所在行的上一行 - 新.rar

135.31 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2022-6-19 18:26 | 显示全部楼层
psxk3535028-1 发表于 2022-6-19 14:45
刚才看了一下 sam-wang 老师的代码,感觉就是凡含“TEXT” 和“TA”的都保留,其他的均删除,所以,点多少 ...

嗯,谢谢。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-6-30 09:45 , Processed in 0.220774 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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