Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在单元格中查找特定值并删除标识的行_String_Excel_Vba_Rows - Fatal编程技术网

String 在单元格中查找特定值并删除标识的行

String 在单元格中查找特定值并删除标识的行,string,excel,vba,rows,String,Excel,Vba,Rows,我使用这个网站已经有一段时间了,并且一直在寻找一种相对简单的方法来在Excel07中用VBA实现任务 我有一个列,它有许多不同的值,我试图在AA:AA中找到以“L-”开头的单元格,然后从那里删除工作表中的行。activesheet/activebook永远不会更改,但我遇到的问题是,该列偶尔会有空白单元格。我试过使用下面的代码,但没有达到我需要的结果 Sub Remove_Expendables() Application.ScreenUpdating = FALSE Range("AA1").

我使用这个网站已经有一段时间了,并且一直在寻找一种相对简单的方法来在Excel07中用VBA实现任务

我有一个列,它有许多不同的值,我试图在AA:AA中找到以“L-”开头的单元格,然后从那里删除工作表中的行。activesheet/activebook永远不会更改,但我遇到的问题是,该列偶尔会有空白单元格。我试过使用下面的代码,但没有达到我需要的结果

Sub Remove_Expendables()
Application.ScreenUpdating = FALSE
Range("AA1").Select
Do
ActiveCell.Offset(1, 0).Select
If ActiveCell = (Left("L-",2) Then ActiveCell.ClearContents
Loop Until IsEmpty(ActiveCell.Offset(0, 2))
ActiveSheet.Columns("AA:AA").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.ScreenUpdating = TRUE
End Sub

AutoFilter
比循环快得多

Sub AF_Delete()
    Application.ScreenUpdating = False
    With ActiveSheet
        .AutoFilterMode = False
        .Columns("AA").AutoFilter Field:=1, Criteria1:="=L-*"
        .AutoFilter.Range.Offset(1, 0).EntireRow.Delete        '
        .AutoFilterMode = False
    End With
    Application.ScreenUpdating = True
End Sub

AutoFilter
比循环快得多

Sub AF_Delete()
    Application.ScreenUpdating = False
    With ActiveSheet
        .AutoFilterMode = False
        .Columns("AA").AutoFilter Field:=1, Criteria1:="=L-*"
        .AutoFilter.Range.Offset(1, 0).EntireRow.Delete        '
        .AutoFilterMode = False
    End With
    Application.ScreenUpdating = True
End Sub

使用过滤器会更有效率。使用过滤器会更有效率。工作起来很有魅力,我也保存了它以便更好地理解它。非常感谢,这是我第一次在VBA中遇到这个“*”操作符…是时候阅读一些示例了。它非常有用,我还保存了它以便更好地理解它。非常感谢,这是我第一次在VBA中遇到这个“*”操作符…是时候阅读一些示例了。