找回密码
 注册
快捷导航
查看: 1901|回复: 12

【求助】Excel批量删除

[复制链接] |自动提醒
阅读字号:

1221

回帖

40

积分

4385

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-5-30
发表于 2008-8-9 14:40:37| 字数 119| - 中国–四川–绵阳 联通/广电网 | 显示全部楼层 |阅读模式
对这个东东没什么研究啊,兄弟们帮忙。
怎么样把一个workbook里面的所有含有某个字符串的整行删掉呢?
可以用查找把他们全部找出来,但是不知道怎么删掉。。。
当然不是一个一个的删,几百行的,有什么script吗?我用的是excel 2003
多谢
http://chris.wu.yale.googlepages.com/home

2128

回帖

0

积分

2835

资产值

入门会员 Rank: 1

注册时间
2003-9-8
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-8-9 18:19:02| 字数 402| - 中国–浙江–杭州 阿里云 | 显示全部楼层
Sub del()

m = 20           '定义行数,即删除的范围
strdelete = "ffff"  '定义删除操作中包含的字符串
ndellen = Len(strdelete)
For i = 1 To m
    'm代表行数
    For j = 1 To Len(Range("a" & i).Value)
        If Mid(Range("a" & i).Value, j, ndellen) = Trim(strdelete) Then
                strrow = Trim(Str(i)) + ":" + Trim(Str(i))
'                Rows("13:13").Select
                Rows(strrow).Select
                Selection.delete Shift:=xlUp
                If i > 1 Then
                    i = i - 1
                ElseIf i = 1 Then
                    i = 1
                End If
                Exit For
        End If
    Next
Next

End Sub
回复 支持 反对

使用道具 举报

2128

回帖

0

积分

2835

资产值

入门会员 Rank: 1

注册时间
2003-9-8
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-8-9 18:24:14| 字数 264| - 中国–浙江–杭州 阿里云 | 显示全部楼层
'                Rows("13:13").Select
这行是多余的,忘删除了;
没仔细调试;
使用情况:单列,即Range("a" & i).Value中“a”代表a列,根据情况修改;如果删除的搜索范围包含多列,那么上述代码不太合适,需要添加横向列的搜索,因此,代码只适合于单列。
你说的情况中删除范围workbook,是不是应该是sheet?xls文件叫workbook,里面的单个表叫sheet,上述代码使用于单个sheet,如果要在workbook的范围内删除,代码需要修改;
试试吧,有问题再改。
回复 支持 反对

使用道具 举报

2128

回帖

0

积分

2835

资产值

入门会员 Rank: 1

注册时间
2003-9-8
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-8-9 18:27:00| 字数 108| - 中国–浙江–杭州 阿里云 | 显示全部楼层
如果是office2007,直接选择列,定义条件格式就行了,即:把一列中包含某些字符串的单元格设置为带颜色背景,然后在按颜色排序,选定这些带颜色的行,删除就行了;
office2003中我不知道有没有捷径,暂先用代码吧
回复 支持 反对

使用道具 举报

9万

回帖

603

积分

21万

资产值

天下无敌I Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2004-6-23
发表于 2008-8-9 18:29:20| 字数 8| - 中国–广东–深圳 天威有线宽带(关内) | 显示全部楼层
高手啊. 学习之.
回复 支持 反对

使用道具 举报

2128

回帖

0

积分

2835

资产值

入门会员 Rank: 1

注册时间
2003-9-8
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-8-9 18:33:08| 字数 375| - 中国–浙江–杭州 阿里云 | 显示全部楼层
Sub del()

m = 20           '定义行数,即删除的范围
strdelete = "ffff"  '定义删除操作中包含的字符串
ndellen = Len(strdelete)
For i = 1 To m
    'm代表行数
    For j = 1 To Len(Range("a" & i).Value)
        If Mid(Range("a" & i).Value, j, ndellen) = Trim(strdelete) Then
                strrow = Trim(Str(i)) + ":" + Trim(Str(i))
                Rows(strrow).Select
                Selection.delete Shift:=xlUp
                If i > 1 Then
                    i = i - 1
                ElseIf i = 1 Then
                    i = 0
                End If
                Exit For
        End If
    Next
Next

End Sub

用这段吧
回复 支持 反对

使用道具 举报

2128

回帖

0

积分

2835

资产值

入门会员 Rank: 1

注册时间
2003-9-8
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-8-9 18:35:29| 字数 63| - 中国–浙江–杭州 阿里云 | 显示全部楼层
If i > 1 Then
                    i = i - 1
                ElseIf i = 1 Then
                    i = 0
                End If
这写的多余了点,直接>=1 就完了,再赚个nb
回复 支持 反对

使用道具 举报

5727

回帖

69

积分

1万

资产值

至尊会员I Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2007-1-26
发表于 2008-8-9 18:45:35| 字数 16| - 中国–浙江–宁波 电信 | 显示全部楼层
虫虫真是高手,我看到这些代码就晕
回复 支持 反对

使用道具 举报

1221

回帖

40

积分

4385

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-5-30
 楼主| 发表于 2008-8-9 22:39:22| 字数 45| - 中国–四川–绵阳 联通/广电网 | 显示全部楼层
多谢虫虫,看来要学学vba script了,要删除的字符串可以带通配符的吗?比如:“粤*澳”
http://chris.wu.yale.googlepages.com/home
回复 支持 反对

使用道具 举报

1221

回帖

40

积分

4385

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-5-30
 楼主| 发表于 2008-8-10 12:53:56| 字数 181| - 中国–四川–绵阳 联通/广电网 | 显示全部楼层
最后用这个蹩脚的宏搞定了。

Sub FindDelete()

    For i = 1 To 20
   
    Cells.find("粤*澳").EntireRow.Select
   
    Selection.delete Shift:=xlUp
   
    Next i
   
End Sub

会有run-time error,需要一个worksheet一个worksheet的运行。。。
有时间再完善吧,现交差了再说。
http://chris.wu.yale.googlepages.com/home
回复 支持 反对

使用道具 举报

2128

回帖

0

积分

2835

资产值

入门会员 Rank: 1

注册时间
2003-9-8
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2008-8-10 16:13:43| 字数 11| - 中国–浙江–杭州 阿里云 | 显示全部楼层
原来还是有捷径的,哈哈
回复 支持 反对

使用道具 举报

3879

回帖

31

积分

3658

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2008-2-9
发表于 2008-8-10 19:21:11| 字数 23| - 中国–江苏–常州 电信 | 显示全部楼层
我这有一个批量删除的软件满好的能删除很多的垃圾

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

353

回帖

8

积分

580

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-9-28
发表于 2008-8-10 23:04:15| 字数 9| - 中国–广东–广州–越秀区 电信/荔湾区电信 | 显示全部楼层
替换掉它行不行的.
r60e
x200
x61
www.ixn.cc
回复 支持 反对

使用道具 举报

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

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-2-12 13:24 , Processed in 0.133127 second(s), 43 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部