使用唯一过滤 (VBA) 时的第一个值两次

Noc*_*ceo 2 excel vba

我制作了一个非常简单的 Visual Basic 脚本,它使用 Excel 中的高级筛选功能,将唯一值从一张工作表中的一列复制到另一张工作表中的一列。它适用于所有值,除了第一个出现两次。谁能告诉我这个故障的原因?我尝试手动使用过滤器,结果相同。

Sub getUniqueRuns()

    Sheets(2).Range("C2:C65536").AdvancedFilter Action:=xlFilterCopy, 
    CopyToRange:=Sheets(5).Range("A2"), Unique:=True

End Sub
Run Code Online (Sandbox Code Playgroud)

Phi*_*192 5

AdvancedFilter 使用范围的顶行作为标题,然后提供范围其余部分的 distict 值。由于您提供了第 2 行作为第一行,因此它使用此作为标题,然后将第 3 行作为数据。结果你得到了重复。我建议您将范围更改为以下范围,然后将标题复制过来。

Sub getUniqueRuns()
    Sheets(2).Cells.Clear
    Sheets(2).Range("C1:C65536").AdvancedFilter Action:=xlFilterCopy, 
    CopyToRange:=Sheets(5).Range("A1"), Unique:=True

End Sub
Run Code Online (Sandbox Code Playgroud)