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