假设我有一个非常大的数据集,其中包含超过100,000+的行。在A列中,我想找到每个唯一的数字。
我知道这可以使用.Find特性和集合/数组来完成,但这些似乎需要很长时间--特别是对于100,000+行。
然而,在AutoFiltering列A之后,当我点击向下箭头时,它只显示唯一的变量。有没有可能以这种方式简单地从选择中提取这些值?
'pseudocode
filter.Count
Dim X As Long
For x = 2 to filter.Count
Cells(x, 14) = filter(x)
Next x发布于 2018-06-14 05:15:02
你可以使用先进的过滤器,它非常快。我尝试了127k行,结果立马就出来了。
Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("D1"), Unique:=True发布于 2018-06-14 05:02:10
您可以将可见单元格提取到数组中。假设您的总范围(不含过滤器)为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 Subhttps://stackoverflow.com/questions/50846082
复制相似问题