uniques的Excel高级过滤器会导致一个重复条目

uniques的Excel高级过滤器会导致一个重复条目,excel,vba,Excel,Vba,我的数据集从一堆空行开始,然后到达第一块填充的单元格。在B列(运行宏后移到C列)中,我有一个官员姓名,后面是一堆空行,后面是另一个官员姓名,等等。这一列可能有重复的官员姓名 我尝试编写一个高级过滤器宏,将唯一官员姓名列表复制到单元格A1中 Private Sub UserForm_Initialize() Columns("A:A").Insert 'inserts column to left of A for officer names to be pasted in With Ran

我的数据集从一堆空行开始,然后到达第一块填充的单元格。在B列(运行宏后移到C列)中,我有一个官员姓名,后面是一堆空行,后面是另一个官员姓名,等等。这一列可能有重复的官员姓名

我尝试编写一个高级过滤器宏,将唯一官员姓名列表复制到单元格A1中

Private Sub UserForm_Initialize()

Columns("A:A").Insert 'inserts column to left of A for officer names to be pasted in


With Range("c1:c" & Cells(Rows.Count, 3).End(xlUp).Row)
.AdvancedFilter Action:=xlFilterCopy, copytorange:=Cells(2, 1), unique:=True
On Error Resume Next
End With

End Sub
但我的结果是:
警官A
(空白行)
警官A
警官B
警官C
等等

由于这个结果与我在没有VBA的情况下使用高级过滤器的结果相同,我认为这是我的原始数据的格式化方式。我尝试手动添加一个标题到军官姓名列,但没有任何运气


如何让结果只显示非重复名称列表?

您的代码很棒。这只是因为最上面的一行被视为标题行,这就是为什么您会看到两次官员a,而没有其他官员看到两次

我建议您创建自己的标题行,例如“官员姓名”,并将其合并到筛选器中。然后,您将在第二列中看到重复的内容,您可以忽略它

可以使用诸如

等代码删除空白行
ActiveSheet.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
您可以只使用“RemovedUpplicates”方法

With ActiveSheet
    .Columns("A").Insert
    .Range("C1:C" & .Cells(.Rows.Count, 3).End(xlUp).Row).Copy
    .Range("A1").PasteSpecial Paste:=xlPasteValues
    .Range("A:A").RemoveDuplicates Columns:=1, Header:=xlNo
    Application.CutCopyMode = False
End With

我搜索了一个又一个这样的方法,因为我认为VBA肯定有这样的东西。谢谢