菜鸟也能懂的Excel VBA字典入门指南

文摘   2024-12-31 10:56   湖北  

2000元课程

  免费学7天

函数+VBA



亲爱的Excel小白们,还在为数据查找和分类统计发愁吗?今天我要介绍一个超级实用的"神器"——VBA字典!它就像我们平常查的字典一样,只不过不是查"apple"能找到"苹果",而是可以帮你快速找到"张三的工资是多少"这样的问题!

一、什么是字典?

想象一下你手里有一本魔法词典:

  • 左边是关键词(Key):比如"张三"

  • 右边是对应的值(Value):比如"8000元"

这就是字典的基本概念!它能让你用超快的速度找到你要的信息,比Excel的VLOOKUP函数不知道高到哪里去了!

二、创建你的第一个字典 

不要吃惊!VBA里完全可以使用中文变量,对新手来说,可以极大地降低学习难度。本人以VBA编程为生,写了几十万行的中文变量代码,老婆孩子都靠这些代码挣来的。所以,不要相信网上那些说"必须用英文变量"的鬼话!

Sub 字典入门示例()
'声明一个字典变量
Dim 我的字典 As Object
'创建字典对象(记得先引用Microsoft Scripting Runtime)
Set 我的字典 = CreateObject("Scripting.Dictionary")

'往字典里添加数据,就像往书包里放书一样简单!
我的字典.Add "张三", "8000元"
我的字典.Add "李四", "9000元"
我的字典.Add "王五", "10000元"

'查询数据就像翻书一样容易
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

五、使用技巧和注意事项 

  1. 别忘了引用库

  • 工具 → 引用 → 找到"Microsoft Scripting Runtime"

  • 不想引用?用CreateObject("Scripting.Dictionary")照样可以!

  • Key必须是唯一的

    • 就像一个人不能有两个身份证号一样

    • 重复添加会报错,要用Replace方法

  • 清空字典

  • 我的字典.RemoveAll '周末到了,清空打卡记录

    六、实战应用场景 

    1. 成绩查询系统

    • Key:学号

    • Value:Array(姓名, 语文, 数学, 英语)

  • 库存管理

    • Key:商品编号

    • Value:Array(商品名, 数量, 单价)

  • 员工考勤统计

    • Key:工号

    • Value:Collection(打卡时间1, 打卡时间2...)

    七、小白进阶秘籍 

    1. 遍历字典的两种方式

    '方式一:遍历所有的Key
    For Each k In 我的字典.Keys
    Debug.Print k & ": " & 我的字典(k)
    Next k

    '方式二:遍历所有的Value
    For Each v In 我的字典.Items
    Debug.Print v
    Next v

    1. 字典的键值可以是任何类型

    '数字作为Key
    我的字典.Add 1, "第一名"
    '日期作为Value
    我的字典.Add "开学日期", #9/1/2024#

    八、总结 

    字典就像是Excel中的"百宝箱",掌握了它,你就能:

    • 比VLOOKUP查得更快

    • 比数组用起来更方便

    • 比循环遍历效率更高

    记住:工欲善其事,必先利其器。熟练运用字典,让你的Excel VBA技能直接起飞!

    九、练习题 

    1. 试着用字典统计一列数据中每个值出现的次数

    2. 用字典制作一个简单的通讯录

    3. 结合字典和工作表,制作一个成绩查询系统

    十、当然也可以直接在VBA代码助手中直接提问

    代码助手下载地址 vbayyds.com



    VBA代码助手AI代码生成器大提速


    记住:代码写得多,bug才会少。快动手试试吧!


    买课程可进永久答疑群,课程可免费试学点击下方链接即可

    郑广学Excel实战教程




    EXCEL880
    Excel/WPS办公技巧分享 郑广学VBA/VSTO/JSA教程分享 课程咨询及付费定制表格加EXCEL880B
     最新文章