Excel VBA自动筛选器会继续删除与条件不匹配的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel VBA自动筛选器会继续删除与条件不匹配的数据相关的知识,希望对你有一定的参考价值。
*编辑我用一个新的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
答案
我对你的代码进行了更改,我删除了.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
以上是关于Excel VBA自动筛选器会继续删除与条件不匹配的数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 xlFilterValues 恢复自动筛选会引发错误 13 如果 Len(Criteria1(i))>255 类型不匹配?