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

问题描述 投票:0回答:1

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

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

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
vba excel-vba
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.