親愛的Excel小白們,還在為數(shù)據(jù)查找和分類統(tǒng)計發(fā)愁嗎?今天我要介紹一個超級實(shí)用的"神器"——VBA字典!它就像我們平常查的字典一樣,只不過不是查"apple"能找到"蘋果",而是可以幫你快速找到"張三的工資是多少"這樣的問題!
一、什么是字典?想象一下你手里有一本魔法詞典: 這就是字典的基本概念!它能讓你用超快的速度找到你要的信息,比Excel的VLOOKUP函數(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元" '查詢數(shù)據(jù)就像翻書一樣容易 MsgBox "張三的工資是:" & 我的字典("張三") End Sub
三、字典的日常操作大全 1. 檢查"書包"里有沒有這本書If 我的字典.Exists("張三") Then MsgBox "找到張三啦!" Else MsgBox "張三今天請假了?" End If
2. 修改數(shù)據(jù)(給張三加薪!)我的字典("張三") = "10000元" '張三升職加薪啦!
3. 刪除數(shù)據(jù)(李四離職了)4. 統(tǒng)計字典里有多少條數(shù)據(jù)MsgBox "公司現(xiàn)在還有" & 我的字典.Count & "個人"
四、實(shí)用小案例:員工信息快速查詢系統(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
五、使用技巧和注意事項(xiàng) 別忘了引用庫 Key必須是唯一的 就像一個人不能有兩個身份證號一樣 重復(fù)添加會報錯,要用Replace方法
清空字典
我的字典.RemoveAll '周末到了,清空打卡記錄
六、實(shí)戰(zhàn)應(yīng)用場景 成績查詢系統(tǒng) 庫存管理 員工考勤統(tǒng)計
七、小白進(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é) 字典就像是Excel中的"百寶箱",掌握了它,你就能: 比VLOOKUP查得更快 比數(shù)組用起來更方便 比循環(huán)遍歷效率更高
記住:工欲善其事,必先利其器。熟練運(yùn)用字典,讓你的Excel VBA技能直接起飛! 九、練習(xí)題 試著用字典統(tǒng)計一列數(shù)據(jù)中每個值出現(xiàn)的次數(shù) 用字典制作一個簡單的通訊錄 結(jié)合字典和工作表,制作一個成績查詢系統(tǒng)
十、當(dāng)然也可以直接在VBA代碼助手中直接提問代碼助手下載地址 vbayyds.com
記?。捍a寫得多,bug才會少??靹邮衷囋嚢?!
|