Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
Excel 根据列中的值删除范围内的行_Excel_Delete Row_Vba - Fatal编程技术网

Excel 根据列中的值删除范围内的行

Excel 根据列中的值删除范围内的行,excel,delete-row,vba,Excel,Delete Row,Vba,我需要创建一个宏,只查看特定列中的每个单元格,即不查看整个电子表格并从特定行开始。然后,它将拥有所有不包含我的兴趣值的行 比如说,我的目标是搜索A列中的每一个值,我将从A2过滤到A9999999,留下A1不变。然后我将删除A列中不包含103526和103527的每一行 下面的代码能够过滤我感兴趣的值的所有行,但是,我在过滤一列以及从A2到A9999999时遇到问题。如何更改此代码以满足这些条件 Sub test() Dim j As Integer, k As Integer D

我需要创建一个宏,只查看特定列中的每个单元格,即不查看整个电子表格并从特定行开始。然后,它将拥有所有不包含我的兴趣值的行

比如说,我的目标是搜索A列中的每一个值,我将从A2过滤到A9999999,留下A1不变。然后我将删除A列中不包含103526和103527的每一行

下面的代码能够过滤我感兴趣的值的所有行,但是,我在过滤一列以及从A2到A9999999时遇到问题。如何更改此代码以满足这些条件

Sub test()    
Dim j As Integer, k As Integer    
Dim r As Range, cfind6 As Range, cfind7 As Range    
Worksheets("sheet1").Activate    
On Error Resume Next    
j = Cells(Rows.Count, "A").End(xlUp).Row    
For k = j To 1 Step -1    
Set cfind6 = Rows(k).Cells.Find(what:=103526, lookat:=xlWhole)    

Set cfind7 = Rows(k).Cells.Find(what:=103527, lookat:=xlWhole)    
If cfind6 Is Nothing And cfind7 Is Nothing Then Rows(k).Delete    

Next

有两种不同的方法可以实现这一点,一种方法是将代码更改为:

Sub test()
    Dim i As Integer
    Dim ws As Worksheet

    Set ws = ActiveWorkbook.Sheets("Sheet1")

    For i = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If Not (ws.Cells(i, 1).Value = 103526 Or ws.Cells(i, 1).Value = 103527) Then
            ws.Cells(i, 1).EntireRow.Delete
        End If
    Next i
End Sub