假设我拥有超过100,000行的非常大的数据集。在A栏中,我想找到每个唯一的数字。
我知道这可以使用.Find功能和集合/数组完成,但这些似乎需要花费很多时间 - 特别是有超过100,000行。
然而,在自动过滤A列后,当我点击向下箭头时,它只显示唯一变量。是否可以通过这种方式从选择中简单地提取这些值?
'pseudocode
filter.Count
Dim X As Long
For x = 2 to filter.Count
Cells(x, 14) = filter(x)
Next x
答案 0 :(得分:1)
你可以使用高级过滤器,它非常快。我尝试了127k行,结果很快。
Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("D1"), Unique:=True
答案 1 :(得分:0)
您可以将可见单元格提取到数组中。假设您的总范围(不带过滤器)为A2:A10000
。运行您的过滤器,然后您可以运行此宏:
Sub t()
Dim arr() As Variant
arr = Range("A2:A10000").SpecialCells(xlCellTypeVisible)
Dim i As Long
For i = LBound(arr) To UBound(arr)
Debug.Print (arr(i, 1))
' Do things with each entry in array
Next i
End Sub