从列中删除重复项,但在另一个表中创buildVBA结果的列

所以我试图从列中删除重复的ID,并将结果粘贴到另一个表。 我目前的解决方法是将整个列复制到新的工作表,并删除重复那里,但现在非常重要,因为有60k行,我想现在做这个多列。

问题:有没有更好的方法来做到这一点,所以我不必先复制列。

这是我目前的代码。

Dim ws As Worksheet Dim ws2 As Worksheet Dim wb As Workbook Set wb = Workbooks("Test.xlsx") Set ws = wb.Worksheets(1) Set ws2 = wb.Worksheets(4) ws.Range("A1:A" & rowz) = ws2.Range("A1:A" & rowz) with ws2 Set CtrlID = ws2.Range("A1:A" & rowz) CtrlID.RemoveDuplicates Columns:=1, Header:=xlYes end with 

如果你在实现字典方法时遇到困难,你可以试试这个:

 Dim ws As Worksheet Dim ws2 As Worksheet Dim wb As Workbook Dim dict as Object Dim r as Range Set wb = Workbooks("Test.xlsx") Set ws = wb.Worksheets(1) Set ws2 = wb.Worksheets(4) Set dict = CreateObject("Scripting.Dictionary") 'Assign each value to the dictionary ' overwrites existing values and ensures no duplicates For each r in ws.Range("A1:A" & rowz).Cells dict(r.Value) = r.Value Next '## Put the dictionary in to the other worksheet: ws2.Range("A1").Resize(Ubound(dict.Keys) + 1, 1).Value = Application.Transpose(dict.Keys) Set dict = Nothing 

我真的没有看到重新发明车轮的理由。 你可以运行一些testing,看看哪个更快。