- 对于存在excel里的数据诸如商品信息、会员信息、交易信息等,每当我们需要查找的时候,第一反应都是使用Ctrl+F或vlookup函数,但如果表格和信息行数较多,这样的查找就显得比较费劲。
- 虽然数据都在Excel里,但我们不是有VBA吗?不如利用VBA装个逼,做一个信息查询系统出来。
文章目录
话不多说,先看成果~
1.梳理代码的结构
从gif图可以知道,打开“会员信息查询.xlsm”的文件之后,不会显示Excel工作界面,但会弹出“会员查询”窗口。当我们输入超过4位的手机号时,会出现模糊匹配的下拉列表供我们选择。最后,点击“查询”按钮,相关信息会显示出来。由此,我们可以得到代码的结构为:
- 1.设置工作簿打开事件和窗体控件。
- 2.设置手机号码文本框事件和下拉列表的模糊匹配。
- 3.设置查询按钮事件及相应文本框的信息匹配。
- 4.设置窗体关闭事件。
2.哟西,开始写代码吧!
2.1.设置工作簿打开事件和窗体控件
- 为了装逼,可以设置当工作簿打开的时候,Excel工作界面不可见,只显示查询窗口,这样别人可能会以为我们在使用哪个牛逼的系统hhh
- 接着,把我们需要查询的信息作为控件如标签、文本、列表框、按钮等插入窗口中,设置窗口的名字为“会员查询”。
2.2. 设置手机号码文本框事件和下拉列表
- 这一步可以说是我们这个“系统”的灵魂,也是很多查询系统的套路,即通过模糊匹配帮我们节省查找的时间。
- 首先,文本框一改变会触发列表框的相应动作,因此要选择文本框的change事件。
- 在书写这一段代码的时候,需要特别注意下拉列表的显示设置。代码逻辑就是:下拉列表的visible默认为false,只有当文本框的输入值大于等于4时,列表才会显示。当列表里的值被选择,列表重新变成不可见。
2.3. 设置查询按钮事件及相应文本框
- 利用find函数,我们可以找到对应的单元格。需要注意的是,如果不用rng变量赋值,当find函数找不到单元格时,系统会报错,代码就gg了。所以rng进行赋值,使用if语句判断rng之后,才能运行下面的代码。
- 找到对应单元格之后,利用offset函数,我们就能轻松地得到我们想要的信息啦~
2.4.设置窗体关闭事件
- 最后就只剩下一个骚包的操作,那就是关闭窗体的同时,把Excel也关了,这逼我们也就装完了hhh
3. 文章说明
- 代码主要涉及了窗体控件和事件,不具有普适性,就不分享代码了~
- 这是本人学习王老师的《跟着王老师学Excel VBA》课程所写的案例分享,需要系统学习的小伙伴,B站指路:https://www.bilibili.com/video/BV1L4411Q7Ni