如果单元格包含字符串X,则删除整行

Anc*_*end 35 excel vba excel-2007 excel-vba excel-2010

我是VBA的新手,我正试图想出一种方法来删除网站列单元格包含单词的所有行(如果可能的话,移动单元格)none.该表包含5000多条记录,这将为我节省大量时间.

我很感激任何建议.提前谢谢了!

http://i39.tinypic.com/5ano1d.png

MBK*_*MBK 70

这不是VBA任务 - 使用自动过滤器最简单地解决此特定任务.

1.插入自动过滤器(在Excel 2010中单击主页 - >(编辑)排序和过滤 - >过滤器)
2.过滤"网站"列
3.标记"无"并删除它们
4.清除过滤器

  • 除非OP具体询问如何通过VBA做到这一点。 (3认同)

小智 18

好的我知道这对于VBA,但如果您需要这样做一次性批量删除,您可以使用以下Excel功能:http://blog.contextures.com/archives/2010/06/21/fast-way-to -find-and-delete-excel-rows /希望这对任何人都有帮助

寻找字符串"paper"的示例:

  1. 在"查找和替换"对话框中,在"查找内容"框中键入"纸张".
  2. 单击全部查找,以查看带有"纸张"的单元格列表
  3. 在列表中选择一个项目,然后按Ctrl + A,选择整个列表,并选择工作表上的所有"纸张"单元格.
  4. 在功能区的"主页"选项卡上,单击"删除",然后单击"删除工作表行".


Apo*_*mer 8

在"开发人员选项卡"中,转到"Visual Basic"并创建一个模块.复制粘贴以下内容.请记住根据您的需要更改代码.然后运行该模块.

  Sub sbDelete_Rows_IF_Cell_Contains_String_Text_Value()
    Dim lRow As Long
    Dim iCntr As Long
    lRow = 390
    For iCntr = lRow To 1 Step -1
        If Cells(iCntr, 5).Value = "none" Then
            Rows(iCntr).Delete
        End If
    Next
    End Sub
Run Code Online (Sandbox Code Playgroud)

lRow:输入当前文件所包含的行数.

"If"中的数字"5"表示第五(E)列


小智 6

我想补充一下@MBK的回答.虽然我发现@ MBK的答案在解决类似问题方面非常有帮助,但如果@MBK包含如何过滤特定列的屏幕截图会更好.在此输入图像描述