VBA字典高效数据处理技巧分享
创作时间:
作者:
@小白创作中心
VBA字典高效数据处理技巧分享
Sub DictionaryExample()
' 创建字典对象
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
' 添加键值对
dict.Add "A", 100
dict.Add "B", 200
dict.Add "C", 300
' 检查键是否存在
If dict.Exists("B") Then
MsgBox "Key B exists. Value: " & dict("B")
End If
' 修改值
dict("B") = 250
' 删除键
dict.Remove "C"
' 遍历字典
Dim key As Variant
For Each key In dict.Keys
Debug.Print "Key: " & key & ", Value: " & dict(key)
Next
' 统计元素数量
MsgBox "Total items: " & dict.Count
' 清空字典
dict.RemoveAll
End Sub
Sub DictionaryAdvancedUsage()
' 创建字典对象
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
' 数据去重示例
Dim arr As Variant
arr = Array("apple", "banana", "apple", "orange", "banana", "grape")
Dim i As Long
For i = LBound(arr) To UBound(arr)
dict(arr(i)) = 1 ' 任意值,关键是键的唯一性
Next
' 去重后的数组
Dim uniqueArr() As String
ReDim uniqueArr(dict.Count - 1)
i = 0
For Each key In dict.Keys
uniqueArr(i) = key
i = i + 1
Next
' 输出去重后的数组
For i = LBound(uniqueArr) To UBound(uniqueArr)
Debug.Print uniqueArr(i)
Next
' 数据查找示例
Dim searchKey As String
searchKey = "banana"
If dict.Exists(searchKey) Then
MsgBox "Found: " & searchKey
Else
MsgBox "Not found: " & searchKey
End If
' 字典排序示例
Dim sortedKeys() As Variant
sortedKeys = dict.Keys
Call QuickSort(sortedKeys, LBound(sortedKeys), UBound(sortedKeys))
' 输出排序后的键值对
For i = LBound(sortedKeys) To UBound(sortedKeys)
Debug.Print "Sorted Key: " & sortedKeys(i) & ", Value: " & dict(sortedKeys(i))
Next
' 多字典操作示例
Dim dict2 As Object
Set dict2 = CreateObject("Scripting.Dictionary")
dict2.Add "D", 400
dict2.Add "E", 500
' 合并字典
Dim combinedDict As Object
Set combinedDict = CreateObject("Scripting.Dictionary")
For Each key In dict.Keys
combinedDict.Add key, dict(key)
Next
For Each key In dict2.Keys
combinedDict.Add key, dict2(key)
Next
' 输出合并后的字典
For Each key In combinedDict.Keys
Debug.Print "Combined Key: " & key & ", Value: " & combinedDict(key)
Next
End Sub
' 快速排序算法用于排序数组
Sub QuickSort(arr() As Variant, first As Long, last As Long)
Dim pivot As Variant
Dim temp As Variant
Dim i As Long
Dim j As Long
If first < last Then
pivot = arr((first + last) \ 2)
i = first - 1
j = last + 1
Do
Do
i = i + 1
Loop While arr(i) < pivot
Do
j = j - 1
Loop While arr(j) > pivot
If i <= j Then
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
End If
Loop While i <= j
QuickSort arr, first, j
QuickSort arr, j + 1, last
End If
End Sub
热门推荐
邮储银行创新金融服务,精准支持米易打造“天府第二粮仓”
派币在中国的法律地位揭秘:未获官方认可,投资需谨慎
天然润喉糖——滇橄榄
橄榄油和非酒精性脂肪肝
从点菜到结账:职场餐桌礼仪详解与实战技巧
安全享用泡泡糖:成分解析、食用建议与选购指南
许昌曹魏古城夜市:河南唯一夜间文旅集聚区的三国文化盛宴
告别“餐桌陋习”:6个实用建议助你吃得健康又礼貌
从座位安排到用餐细节:一文读懂餐桌礼仪
从18万千瓦到1.04亿千瓦:毛泽东时代农业机械化成就
BBC《地球脉动》等四部纪录片,展现自然之美与环境之忧
许昌曹魏古城夜市:河南唯一夜间文旅集聚区的三国文化盛宴
白山市浑江区冬季旅游攻略:四大景区赏雪玩冰,交通住宿全解析
白山摄影必去:龙山湖观鸟拍湖,画家村文艺采风
白山浑江四方山枫叶谷:长白山脉最美红叶谷攻略
天山雪莲:营养价值与生态保护并重的珍稀草本
高海拔珍品藏雪莲:冬季养生的多重功效与食用指南
白居易笔下的宫女生活:从《后宫词》看古代宫女的悲惨命运
人类已经创造出上亿度的高温,为何一直无法突破绝对零度?
速度有上限光速,温度有下限绝对零度,为何会这样?
连光也能冻住,零下273.15度的绝对零度,究竟有多可怕?
解读神秘的绝对零度:人类为什么无法突破这一极限?
湖南大健康产业:科技创新驱动,2027年将破4200亿
明朝军旗:指挥与文化的双重象征
天然气市场分化加剧:欧亚涨、美跌,国内价格创新高
提升游戏体验:鼠标灵敏度怎么调?
中医养生结合现代管理,冬季也能精力充沛
除菌洗衣液选购指南:关键成分与检测方法全解析
福建永安桃源洞:小武夷美誉下的山水人文胜地
文财神武财神,谁更适合你家?