如何筛选唯一名称并显示唯一名称';使用VBA脚本在excel中创建行数据?
我想创建VBA脚本,它可以捕获唯一名称并显示唯一名称的行数据 例如:如何筛选唯一名称并显示唯一名称';使用VBA脚本在excel中创建行数据?,excel,vba,Excel,Vba,我想创建VBA脚本,它可以捕获唯一名称并显示唯一名称的行数据 例如: Names Time Cases Tony 06:14:43 54 Peter 06:04:43 54 Tony 06:15:43 54 Tony 06:16:43 54 Peter 06:12:43 54 Tony 06:21:43 54 Tony 06:33:43 54 Ton
Names Time Cases
Tony 06:14:43 54
Peter 06:04:43 54
Tony 06:15:43 54
Tony 06:16:43 54
Peter 06:12:43 54
Tony 06:21:43 54
Tony 06:33:43 54
Tony 06:45:43 54
Peter 06:14:43 54
Peter 06:21:43 54
Peter 06:22:43 54
Tony 06:47:43 54
Peter 06:33:43 54
Peter 06:59:43 54
我想找到用户Tony,显示他的工作时间开始时间和结束时间,并显示Tony处理了多少个案例。
彼得也是
你能给我一些建议吗
我试过这样的方法:
Sub test()
Dim values As Variant
values = Sheet1.Range("AL3:AL600").Value2
'Add a reference to Microsoft Scripting Runtime
Dim dic As Scripting.Dictionary
Set dic = New Scripting.Dictionary
'Set the comparison mode to case-sensitive
dic.CompareMode = BinaryCompare
Dim valCounter As Long
For valCounter = LBound(values) To UBound(values)
'Check if the name is already in the dictionary
If Not dic.Exists(values(valCounter, 1)) Then
'Add the new name as a key, along with a dummy value of 0
dic.Add values(valCounter, 1), 0
End If
Next valCounter
'Extract the dictionary's keys as a 1D array
Dim result As Variant
result = dic.Keys
Worksheets.Add
Range("A3:A20").Value = result
End Sub
我可以获得唯一的名称,但我不知道如何提取唯一的名称行数据。沿着这些思路做一些事情可能会有所帮助
Sub testing()
Dim arrTemp() As Variant
Dim lngCount As Long
Dim lngLoop As Long
arrTemp = getTimes("Tony", ActiveSheet.Range("A2:b15"))
lngCount = UBound(arrTemp)
For lngLoop = 0 To lngCount
Range("g1").Offset(lngLoop, 0).Value = arrTemp(lngLoop)
Next lngLoop
Erase arrTemp
End Sub
Function getTimes(strLookFor As String, _
rngLookAt As Excel.Range, _
Optional lngColumnForTimeOffset As Long = 1) As Variant()
Dim rngInspect As Excel.Range
Dim dicAnalysis As New Scripting.Dictionary
For Each rngInspect In rngLookAt.Columns(1).Cells
If rngInspect = strLookFor Then
dicAnalysis.Add CStr(dicAnalysis.Count), _
CDate(rngInspect.Offset(0, lngColumnForTimeOffset).Text)
End If
Next rngInspect
getTimes = dicAnalysis.Items()
End Function
看起来不错。如何筛选多个名称?假设我想看看托尼和彼得的时代。为什么不使用一个过滤器呢?@RonRosenfeld是的,按名称和时间对数据进行排序,然后就在那里了