2014-09-24 65 views
0

我需要创建一个宏,它仅查看特定列(即不是整个电子表格)中的每个单元格,并从特定行开始。然后,它将包含所有不包含我的兴趣值的行。例如我可以说我的目标是搜索列“A”中的每个值,然后我将从A2过滤到A99999999,使A1保持原样。然后,我将删除A列中不包含103526和103527的每一行根据列中的值删除范围内的行

下面的代码能够通过所有行筛选我感兴趣的值,但是,我无法过滤仅一列,并且从A2到A99999999。我如何更改此代码以符合这些条件?

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 

回答

0

有几种不同的方式来处理这一点,一个办法是你的代码更改为类似:

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