添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

以下示例演示如何获取列 A 中的一系列数据并删除重复条目。 此示例使用 Range 对象的 AdvancedFilter 方法,其Unique 参数等于 True 来获取唯一的数据列表。 TheAction 参数等于 xlFilterInPlace ,指定就地筛选数据。 如果要保留原始数据,请将 Action 参数设置为 等于 xlFilterCopy ,并指定要在CopyToRange 参数中复制筛选数据的位置。 筛选唯一值后,此示例使用 Range 对象的 SpecialCells 方法查找任何剩余的空白行并将其删除。

示例代码提供者: Tom Urtis, Atlas Programming Management

Sub DeleteDuplicates()
    With Application
        ' Turn off screen updating to increase performance
        .ScreenUpdating = False
        Dim LastColumn As Integer
        LastColumn = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1
        With Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
            ' Use AdvanceFilter to filter unique values
            .AdvancedFilter Action:=xlFilterInPlace, Unique:=True
            .SpecialCells(xlCellTypeVisible).Offset(0, LastColumn - 1).Value = 1
            On Error Resume Next
            ActiveSheet.ShowAllData
            'Delete the blank rows
            Columns(LastColumn).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
            Err.Clear
        End With
        Columns(LastColumn).Clear
        .ScreenUpdating = True
    End With
End Sub

关于参与者

MVP Tom Urtis 是 Atlas Programming Management 的创始人,这是一家位于硅谷的全服务型 Microsoft Office 和 Excel 业务解决方案公司。 Tom 在业务管理和 Microsoft Office 应用程序开发方面拥有 25 年以上的经验,与他人合著过“Holy Macro! It's 2,500 Excel VBA Examples”(Holy Macro! 2,500 个 Excel VBA 示例)。

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。