Vba Excel 2010按字符串筛选,以防止通过删除重复项将其删除

Vba Excel 2010按字符串筛选,以防止通过删除重复项将其删除,vba,excel,filter,Vba,Excel,Filter,我有一个列表,有时有重复的东西,通常会删除删除与删除重复没有问题。这一次我发现我有一个常用的字符串,不希望这些字符串中的任何一个被删除,以防它们的数量相同。代码是这样的 Dim Rng As Range Dim Rw As Long Rw = Cells(Rows.Count, 1).End(xlUp).Row ActiveSheet.AutoFilterMode = False Set Rng = Range("A3:K" & Rw) With Rng .AutoFilter

我有一个列表,有时有重复的东西,通常会删除删除与删除重复没有问题。这一次我发现我有一个常用的字符串,不希望这些字符串中的任何一个被删除,以防它们的数量相同。代码是这样的

Dim Rng As Range
Dim Rw As Long

Rw = Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.AutoFilterMode = False
Set Rng = Range("A3:K" & Rw)
With Rng
    .AutoFilter
    .AutoFilter Field:=1, Criteria1:="<>*Discount*", Operator:=xlAnd
End With

ActiveSheet.Range("$A$1:$C$1000").RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
ActiveSheet.AutoFilterMode = False
Dim Rng As范围
变暗Rw为长
Rw=单元格(Rows.Count,1).End(xlUp).Row
ActiveSheet.AutoFilterMode=False
设置Rng=范围(“A3:K”和Rw)
带Rng
.自动过滤器
.自动筛选字段:=1,准则1:=“*折扣*”,运算符:=xlAnd
以
ActiveSheet.Range(“$A$1:$C$1000”)。RemovedUpplicates列:=数组(1,2),头:=xlYes
ActiveSheet.AutoFilterMode=False
这段代码隐藏了“折扣”,但当它删除重复项时,它跳过过滤器并以任何方式删除它们。从excel中显示的数据来看,它们完全相同,但数据来自QuickBooks,我需要所有折扣才能使所有内容正确相加。

一种方法:

对数据进行排序,将折扣放在开头或结尾

过滤隐藏折扣的数据

使用
Selection.SpecialCells(xlCellTypeVisible)。选择
可选择所有未显示的内容
折扣

从选定范围中删除重复项


删除重复项和排序不适用于多个范围,因此在一个块中获取折扣而不选择它们是很重要的。

您能否对数据进行排序,将折扣放在末尾,将范围设置为排除它们,删除重复项,然后重新排序到原始顺序?