親愛的小白們,還在為數據查找和分類統計發愁嗎?今天我要介紹一個超級實用的"神器"——VBA字典!它就像我們平常查的字典一樣,只不過不是查""能找到"蘋果",而是可以幫你快速找到"張三的工資是多少"這樣的問題!
一、什么是字典?
想象一下你手里有一本魔法詞典:
這就是字典的基本概念!它能讓你用超快的速度找到你要的信息,比的函數不知道高到哪里去了!
二、創建你的第一個字典
不要吃驚!VBA里完全可以使用中文變量,對新手來說,可以極大地降低學習難度。本人以VBA編程為生,寫了幾十萬行的中文變量代碼,老婆孩子都靠這些代碼掙來的。所以,不要相信網上那些說"必須用英文變量"的鬼話!
Sub?字典入門示例()??????'聲明一個字典變量??????Dim?我的字典?As?Object??????'創建字典對象(記得先引用Microsoft?Scripting?Runtime)??????Set?我的字典?=?CreateObject("Scripting.Dictionary")??????????'往字典里添加數據,就像往書包里放書一樣簡單!????我的字典.Add?"張三",?"8000元"??????我的字典.Add?"李四",?"9000元"??????我的字典.Add?"王五",?"10000元"?Sub 字典入門示例()
'聲明一個字典變量
Dim 我的字典 As Object
'創建字典對象(記得先引用Microsoft Scripting Runtime)
Set 我的字典 = CreateObject("Scripting.Dictionary")
'往字典里添加數據,就像往書包里放書一樣簡單!
我的字典.Add "張三", "8000元"
我的字典.Add "李四", "9000元"
我的字典.Add "王五", "10000元"
'查詢數據就像翻書一樣容易
MsgBox "張三的工資是:" & 我的字典("張三")
End Sub?????????'查詢數據就像翻書一樣容易??????MsgBox?"張三的工資是:"?&?我的字典("張三")??End?Sub
三、字典的日常操作大全
1. 檢查"書包"里有沒有這本書
If 我的字典.Exists("張三") Then
MsgBox "找到張三啦!"
Else
MsgBox "張三今天請假了?"
End If
2. 修改數據(給張三加薪!)
我的字典("張三")?=?"10000元"??'張三升職加薪啦!
3. 刪除數據(李四離職了)
我的字典.Remove?"李四"??'李四拜拜
4. 統計字典里有多少條數據
MsgBox?"現在還有"?&?我的字典.Count?&?"個人"
四、實用小案例:員工信息快速查詢系統
Sub 員工信息查詢系統()
Dim 員工信息 As Object
Set 員工信息 = CreateObject("Scripting.Dictionary")
'添加員工信息(用數組來存儲更多信息)
員工信息.Add "張三", Array("研發", "8000元", "13888888888")
員工信息.Add "李四", Array("市場", "9000元", "13999999999")
'查詢界面
Dim 查詢姓名 As String
查詢姓名 = InputBox("請輸入要查詢的員工姓名:")
If 員工信息.Exists(查詢姓名) Then
With 員工信息(查詢姓名)
MsgBox "找到啦!" & vbNewLine & _
"門:" & .Item(0) & vbNewLine & _
"工資:" & .Item(1) & vbNewLine & _
"電話:" & .Item(2)
End With
Else
MsgBox "查無此人!"
End If
End Sub
五、使用技巧和注意事項
別忘了引用庫工具 → 引用 → 找到" "不想引用?用(".")照樣可以!Key必須是唯一的就像一個人不能有兩個身份證號一樣重復添加會報錯,要用方法清空字典
我的字典.RemoveAll??'周末到了,清空打卡記錄
六、實戰應用場景
成績查詢系統Key:學號:(姓名, 語文, 數學, 英語)庫存管理Key:商品編號:(商品名, 數量, 單價)員工考勤統計Key:工號:(打卡時間1, 打卡時間2...)
七、小白進階秘籍
遍歷字典的兩種方式
'方式一:遍歷所有的Key
For Each k In 我的字典.Keys
Debug.Print k & ": " & 我的字典(k)
Next k
'方式二:遍歷所有的Value
For Each v In 我的字典.Items
Debug.Print v
Next v
字典的鍵值可以是任何類型
'數字作為Key
我的字典.Add 1, "第一名"
'日期作為Value
我的字典.Add "開學日期", #9/1/2024#
八、總結
字典就像是中的"百寶箱",掌握了它,你就能:
記住:工欲善其事,必先利其器。熟練運用字典,讓你的 VBA技能直接起飛!
九、練習題
試著用字典統計一列數據中每個值出現的次數用字典制作一個簡單的通訊錄結合字典和工作表,制作一個成績查詢系統
十、當然也可以直接在VBA代碼助手中直接提問
代碼助手下載地址
VBA代碼助手AI代碼生成器大提速
標簽: ExcelVBA 字典入門 數據查找 分類統計 編程技巧