我制作了一个非常简单的 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)
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)