从列中删除重复项,而不影响该行的其余部分

问题描述 投票:0回答:1

此代码在消除重复时删除整行。我想删除重复项,但将数据保留在其他列的其余行中。

Dim rg As Range
Set rg = Range("CJ1")
rg.RemoveDuplicates Columns:=88, Header:=x1yes
excel vba
1个回答
0
投票
  • 将数据加载到数组中,清除dup。并将输出写入工作表
Option Explicit

Sub RemoveDup()
    Dim ws As Worksheet
    Dim lastRow As Long
    Set ws = ThisWorkbook.Sheets("Sheet1")
    lastRow = ws.Cells(ws.Rows.Count, "CJ").End(xlUp).Row
    ' load data into an array
    Dim rngData As Range: Set rngData = ws.Range("CJ1:CJ" & lastRow)
    Dim arrData: arrData = rngData.Value
    Dim i As Long
    Dim objDic As Object, sKey As String
    Set objDic = CreateObject("scripting.dictionary")
    For i = LBound(arrData) To UBound(arrData)
        sKey = arrData(i, 1)
        If objDic.exists(sKey) Then
            arrData(i, 1) = ""
        Else
            objDic(sKey) = ""
        End If
    Next
    rngData.Value = arrData
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.