【发布时间】:2018-07-13 18:37:10
【问题描述】:
我想创建一个宏,它可以从 2 列或更多列的组合中挑选出唯一值,然后复制到另一个表中。
例如,如果我有这样的示例数据:
Account Category
AAA USD
AAA USD
AAA CAD
BBB USD
BBB USD
我希望得到这个结果:
Account Category
AAA USD
AAA CAD
BBB USD
我已经从另一个线程改编了这段代码,该线程使用集合来查找仅一列的唯一值。现在我有 2 列作为标准,有没有办法做到这一点?
我需要比较的两列是 D 和 AB。
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = ThisWorkbook.Worksheets(1)
Set ws2 = ThisWorkbook.Worksheets(2)
Dim LastRowInput As Long
LastRowInput = ws2.Cells.SpecialCells(xlCellTypeLastCell).Row
Dim AccArr As Variant, colUnique As Collection, i As Long, ArrOut As Variant
AccArr = ws2.Range("D2:D" & LastRowInput, "AB2:AB" & LastRowInput).Value
Set colUnique = New Collection
For i = LBound(AccArr) To UBound(AccArr)
On Error Resume Next
colUnique.Add AccArr(i, 1), CStr(AccArr(i, 1))
On Error GoTo 0
Next i
ReDim ArrOut(1 To colUnique.Count, 1 To 1)
For i = 1 To colUnique.Count
ArrOut(i, 1) = colUnique.Item(i)
Next i
ws1.Range("A10").Resize(UBound(ArrOut, 1), UBound(ArrOut, 2)).Value = ArrOut
提前谢谢你。
【问题讨论】:
标签: excel vba collections unique multiple-columns