VBA:如何将列中更改单元格的值与另一个动态范围进行比较?

时间:2017-01-27 19:44:37

标签: excel vba excel-vba

I have a list of 500 orders,每个都有产品代码。我不知道有多少不同的产品代码(同一产品代码有多个订单)。我需要编写一个宏代码来查找所有现有的产品代码,并将它们粘贴到L列中。

第一个产品代码将按原样粘贴在L列中。现在,随着这种情况的继续,我希望用列L中输入的所有值检查C列的下一个产品代码,即,例如,如果A01已经粘贴在L列中,那么下次A01发生时在C栏中,我不希望将其粘贴在L栏中。

我的意思是我想找到我拥有的所有独特产品代码。 我通过录制数据过滤器(Ascending)marco完成了这个,但我想知道如何通过编写自己的代码来完成。 非常感谢提前! :)

Sub try()

    Dim j as long

    Dim i As Long, lastrow As Long



    lastrow = Workbooks("A.xlsx").Worksheets("Sheet1").Range("A1048576").End(xlUp).Row
    On Error GoTo 0

    Range("C2").Select
    Selection.Copy Workbooks("A.xlsx").Worksheets("Sheet1").Range("L2")

    For i = 3 to lastrow

    j = Workbooks("A.xlsx").Worksheets("Sheet1").Range("L1048576").End(xlUp).Row + 1

       If Range("C" & i).value <> Range("L2:L" & j - 1).value Then 'Here's what I don't know how to write

       Range("C" & i).select

       Selection.Copy Workbooks("A.xlsx").Worksheets("Sheet1").Range("L" & j)

    Next i

End Sub

1 个答案:

答案 0 :(得分:2)

将所有代码复制到目标列中,然后从中删除重复项:

Sheet1.Columns("C").Copy Sheet1.Columns("L")
Sheet1.Columns("L").RemoveDuplicates 1