VBA中比较常用的对象之一就是字典,他可以实现快速的查找和各种汇总处理!最大的特点就是速度快,哈希算法就不扯了,直接看案例!!
01 - 使用字典实现VLOOKUP功能
以下演示的是字典最基本的用法!Key-Value查询!
源码分享:
'作者:E精精
'公众号:Excel办公实战
'-----------------------------------------------------
Sub 字典查询()
'定义并创建字典
Dim d As Object
Set d = CreateObject("Scripting.dictionary")
'数据源转入数组
Dim arr, i As Long
arr = Sheet1.Range("a1").CurrentRegion.Value
'循环写入字典
For i = 2 To UBound(arr)
d(arr(i, 1)) = arr(i, 2)
Next
'测试查询效果
MsgBox d("GM004")
End Sub
02 - 快速实现数据汇总!
这里我们就来看一下如何汇总多个工作表中的数据!
A列姓名,B列销售金额,有四周这样的数据需要我们按照姓名汇总对应的小时金额!
源码分享:基本都有简单的注释!
'作者:E精精
'公众号:Excel办公实战
'-----------------------------------------------------
Sub 字典_条件汇总()
'定义并创建字典
Dim d As Object
Set d = CreateObject("Scripting.dictionary")
Dim i As Long, j As Long
'从第二个工作表开始汇总
For i = 2 To Sheets.Count
With Sheets(i)
For j = 2 To Sheets(i).UsedRange.Rows.Count
If .Cells(j, 1) <> "" Then
'对应的姓名销售金额累加
d(.Cells(j, 1).Value) = _
d(.Cells(j, 1).Value) + .Cells(j, 2).Value
End If
Next
End With
Next
'写入汇总表
With Sheets("汇总")
.Cells.Clear
'标题
.Cells(1, 1).Resize(1, 2) = [{"姓名","金额合计"}]
'写入内容
.Cells(2, 1).Resize(d.Count, 2) = _
Application.Transpose(Array(d.Keys, d.items))
End With
End Sub
以上应该算是字典最最常见的用法!如果你掌握了上面的用法,那么字典基本也就入门了!
本文属于VBA字典的基础用法,当然不是0基础教程!请根据自己情况学习!
一键速达