Soh*_*ham 5 excel vba filter excel-vba with-statement
我有一个文件,其行数在8列中扩展到数万.一个特定的列包含周末日期.我必须计算此文件中存在的周末数.
有没有办法提取数据,如下图所示?
如果我们可以提取并获取此集合的计数,那么问题就解决了.
请帮忙.
提前致谢!
小智 6
下面将从A列(25K值)中取一系列三个随机大写字母,将它们作为唯一键(13,382个值)放入字典中,并在排序之前将它们转储回同一工作表中的C列.往返需要约0.072秒.
以下代码要求您进入VBE的工具►参考并添加Microsoft Scripting Runtime.它保存了Scripting.Dictionary的库定义.但是,如果使用CreateObject("Scripting.Dictionary"),则不需要库引用.
Sub buildFilterList()
Dim dMUSKMELONs As Object 'New Scripting.Dictionary
Dim v As Long, w As Long, vTMPs As Variant
Debug.Print Timer
Set dMUSKMELONs = CreateObject("Scripting.Dictionary")
With Worksheets("Sheet2") '<-set this worksheet reference properly!
vTMPs = .Range(.Cells(2, "A"), .Cells(Rows.Count, "A").End(xlUp)).Value2
For v = LBound(vTMPs, 1) To UBound(vTMPs, 1)
If Not dMUSKMELONs.Exists(vTMPs(v, 1)) Then _
dMUSKMELONs.Add key:=vTMPs(v, 1), Item:=vbNullString
Next v
With .Cells(2, "C").Resize(dMUSKMELONs.Count, 1)
.Value = Application.Transpose(dMUSKMELONs.Keys)
.Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlNo
End With
.Cells(2, "D") = dMUSKMELONs.Count
End With
dMUSKMELONs.RemoveAll
Set dMUSKMELONs = Nothing
Debug.Print Timer
End Sub
Run Code Online (Sandbox Code Playgroud)
结果应与此类似: