簡體   English   中英

使用VBA根據B列中的現有值從A列中刪除重復項

[英]Remove duplicates from column A based on existing values in column B using VBA

我需要在A列和B列中輸入數據,並獲取A列中的數據, 而不需要將B列中的數據寫入C列。

我需要的示例:

圖片1

圖片2

一個略微不同且更快的方法而不循環通過工作表上的單元格將是這樣的...

Private Sub CommandButton1_Click()
Dim x, y(), dict
Dim i As Long, j As Long
x = Range("A1").CurrentRegion
Set dict = CreateObject("Scripting.Dictionary")
Columns("C").ClearContents
For i = 1 To UBound(x, 1)
    dict.Item(x(i, 2)) = ""
Next i
j = 1
For i = 1 To UBound(x, 1)
    If Not dict.exists(x(i, 1)) Then
        ReDim Preserve y(1 To j)
        y(j) = x(i, 1)
        j = j + 1
    End If
Next i
Range("C1").Resize(UBound(y), 1) = Application.Transpose(y)
End Sub

將其放在工作表后面的代碼文件中,並將CommandButton1更改為CommandButton1的名稱。

Option Explicit

Private Sub CommandButton1_Click()

    Dim r As Range, matched_ As Variant, counter_ As Long

    'Loop in each cell in Column A
    For Each r In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        If Not IsEmpty(r) Then
            'Loop for a matching value in Column B
            matched_ = Application.Match(r.Value, Columns(2), 0)

            'If match not found, write the value in Column C
            If IsError(matched_) Then
                counter_ = counter_ + 1
                Range("C" & counter_) = r.Value
            End If
        End If
    Next r
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM