Excel VBA自动筛选器会不断删除与条件不匹配的数据

时间:2018-09-21 03:35:30

标签: vba excel-vba

*编辑 我用一个新的excel文件尝试了我的代码,它起作用了!但是当我用当前文件尝试时,发生了同样的事情。 *编辑

我这里有一个代码,该代码将根据条件“否”过滤数据。该代码将过滤来自sheet5的数据并将其复制到sheet1。我的问题是,代码将自动删除母版表(sheet5)中标准为“否”的数据。我希望主表中的数据保持不变。任何帮助都非常感谢。

Sub searchX()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Worksheets("Sheet5") 'master
Set ws2 = Worksheets("Sheet1") 'reminder

With ws1
    .AutoFilterMode = False
    .Range("B3").AutoFilter
    .Range("B3").AutoFilter Field:=17, Criteria1:="NO",
On Error Resume Next  
.AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=ws2.Range("B15")
    .AutoFilterMode = False
End With

MsgBox ("Search done.")
End Sub

1 个答案:

答案 0 :(得分:0)

我对您的代码进行了更改,删除了.Range("B3").AutoFilter,它可以工作,但可能无法达到您想要的方式。

Sub searchX()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("Sheet5") 'master
Set ws2 = ThisWorkbook.Worksheets("Sheet1") 'reminder

With ws1
    .AutoFilterMode = False
    .Range("B3").AutoFilter Field:=17, Criteria1:="NO"
    On Error Resume Next
    .AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=ws2.Range("B15")
    .AutoFilterMode = False
End With

MsgBox ("Search done.")
End Sub