【求助】Excel批量删除
对这个东东没什么研究啊,兄弟们帮忙。怎么样把一个workbook里面的所有含有某个字符串的整行删掉呢?
可以用查找把他们全部找出来,但是不知道怎么删掉。。。
当然不是一个一个的删,几百行的,有什么script吗?我用的是excel 2003
多谢 :) 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 ' Rows("13:13").Select
这行是多余的,忘删除了;
没仔细调试;
使用情况:单列,即Range("a" & i).Value中“a”代表a列,根据情况修改;如果删除的搜索范围包含多列,那么上述代码不太合适,需要添加横向列的搜索,因此,代码只适合于单列。
你说的情况中删除范围workbook,是不是应该是sheet?xls文件叫workbook,里面的单个表叫sheet,上述代码使用于单个sheet,如果要在workbook的范围内删除,代码需要修改;
试试吧,有问题再改。 如果是office2007,直接选择列,定义条件格式就行了,即:把一列中包含某些字符串的单元格设置为带颜色背景,然后在按颜色排序,选定这些带颜色的行,删除就行了;
office2003中我不知道有没有捷径,暂先用代码吧 高手啊. 学习之. 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
用这段吧 If i > 1 Then
i = i - 1
ElseIf i = 1 Then
i = 0
End If
这写的多余了点,直接>=1 就完了,再赚个nb 虫虫真是高手,我看到这些代码就晕:-| 多谢虫虫,看来要学学vba script了,要删除的字符串可以带通配符的吗?比如:“粤*澳” 最后用这个蹩脚的宏搞定了。
Sub FindDelete()
For i = 1 To 20
Cells.find("粤*澳").EntireRow.Select
Selection.delete Shift:=xlUp
Next i
End Sub
会有run-time error,需要一个worksheet一个worksheet的运行。。。
有时间再完善吧,现交差了再说。 原来还是有捷径的,哈哈 我这有一个批量删除的软件满好的能删除很多的垃圾 替换掉它行不行的.
页:
[1]