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

zzoitvuj  于 2022-12-24  发布在  其他
关注(0)|答案(7)|浏览(203)

我试图想出一个方法来删除所有行(并移动单元格,如果可能的话),其中网站列单元格包含单词none。该表包含5000+记录,这将保存我大量的时间。
我很感激你的建议。

bq8i3lrv

bq8i3lrv1#

这不一定是一个VBA任务-这个特定的任务是最容易解决的自动过滤器。
1.插入自动筛选器(在Excel 2010中点击主页-〉(编辑)排序和筛选-〉筛选)
2.在"网站"列上筛选
3.标记"无"并将其删除
4.清除过滤器

nx7onnlm

nx7onnlm2#

好的,我知道VBA的这一点,但如果您需要一次性批量删除,您可以使用以下Excel功能:希望这对任何人都有帮助
查找字符串“paper”的示例:
1.在“查找和替换”对话框的“查找内容”框中键入“paper”。
1.单击“查找全部”,查看包含“paper”的单元格列表
1.选择列表中的一个项目,然后按Ctrl+A,以选择整个列表,并选择工作表上的所有“paper”单元格。
1.在功能区的“开始”选项卡上,单击“删除”,然后单击“删除工作表行”。

0pizxfdo

0pizxfdo3#

在“开发者选项卡”中,转到“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

lRow:输入当前文件的行数。
“如果”中的数字“5”用于第五(E)列

7gs2gvoe

7gs2gvoe4#

我想补充一下@MBK的回答。虽然我发现@MBK的回答对解决类似问题很有帮助,但如果@MBK包含如何过滤特定列的屏幕截图,那就更好了。x1c 0d1x

ckx4rj1h

ckx4rj1h5#

这是在另一个评论中提到的,但你可以尝试这样的东西。

Sub FilterAndDelete()

Application.DisplayAlerts = False 

     With Sheet1 'Change this to your sheet name

         .AutoFilterMode = False   
         .Range("A3:K3").AutoFilter
         .Range("A3:K3").AutoFilter Field:=5, Criteria1:="none"
         .UsedRange.Offset(1, 0).Resize(ActiveSheet.UsedRange.Rows.Count - 1).Rows.Delete 

     End With

Application.DisplayAlerts = True

End Sub

我还没有测试过这个,它来自内存,所以它可能需要一些调整,但它应该可以在不循环数千行的情况下完成工作。您需要删除11-Jul以使UsedRange正确,或者将.Offset(1,0)中的偏移量更改为2行而不是1行。
一般来说,在我执行.Delete之前,我会用.Select而不是Delete来运行宏,这样我就可以确保正确的范围将被删除,这可能值得检查,以确保适当的范围正在被删除。

zysjyyx4

zysjyyx46#

试试这个...

Dim r as Range
Dim x as Integer

For x = 5000 to 4 step -1 '---> or change as you want //Thanx 4 KazJaw

  set r = range("E" & format(x))
  if ucase(r.Value) = "NONE" then
    Rows(x).EntireRow.Delete
  end if 

Next
kulphzqa

kulphzqa7#

1.删除第1行和第2行,使标题位于第1行
1.将其放入宏中(它将检查第75000行,如果愿意,您可以降低该数字
第一个月

相关问题