这几天朋友圈都在晒年会,看到各位抽到的大奖,异常羡慕。
反正我从来都中不到,闲极无聊,索性用 VBA 做个九宫格抽奖器自己抽着玩。
喜欢的话文末点个“好看”,谢谢支持!
运行效果:
按“开始”开始随机抽奖,按“停止”结束抽奖。
![da53b62eadfeb41cdcc96b072c65f24a.gif](https://i-blog.csdnimg.cn/blog_migrate/61a79dd29c058822f312a3b85db1df7b.gif)
制作方法:
1. 在 Excel 中选取九宫格区域,填写奖品
2. 按 Alt+F11 打开 VBE,代码及释义如下:
![f91fb004d56d7298b863d60a10a0d666.png](https://i-blog.csdnimg.cn/blog_migrate/88188de69b65dec760311b10d874e04e.jpeg)
Dim lucky As Integer '将lucky定义为模块级别变量
Sub 开始抽奖()
Dim i As Integer, j As Integer 'i 和 j分别为行和列的值
Randomize '初始化随机数生成器
start:
lucky = 0 ' 初始化 lucky 的值为 0
Range("B2:D4").Interior.ColorIndex = 15 ' 初始底色为浅灰
i = (4 - 2) * Rnd + 2 ' 生成 2 到 4 之间的随机数值
j = (4 - 2) * Rnd + 2 ' 因为本例的行列值都在2到4之间
Cells(i, j).Interior.ColorIndex = 6 ' 抽中的底色为黄色
DoEvents '将控制权传给操作系统,即在程序执行中,略作停顿,
DoEvents '让系统处理完一定的事件后,再继续程序
DoEvents
If lucky = 1 Then Exit Sub ' 当 lucky 为1,则退出
GoTo start
End Sub
Sub 停止抽奖()
lucky = 1 ' 将 lucky 赋值为1
End Sub
3. 现在回到表格界面,点击“开发工具”-->"插入"-->"按钮" 分别制作两个按钮
4. 将按钮的文本分别改为“开始”和“结束”
![384b11604273e184f54023e71472b668.png](https://i-blog.csdnimg.cn/blog_migrate/798a835e8a6a9194e62f491c908849fe.jpeg)
5. 右键单击按钮,分别给两个按钮指定我们已经编辑好的宏,就完成了:
- “开始”按钮对应“开始抽奖”宏
- “停止”按钮对应“停止抽奖”宏
![88ec974ce2d41c429dd43ca36bf5cdf1.png](https://i-blog.csdnimg.cn/blog_migrate/9f7c4b4b1ed242dc66ded6c43a94aaa9.jpeg)
请注意:
- 带有宏程序的 Excel 文件后缀名为 .xlsm,2003 以下版本是 .xls
- 如果宏无法运行,可以点击“开始”-->"Excel 选项"-->“信任中心”-->“信任中心设置”-->“宏设置”-->“启用所有宏”
![465c60471f0d1f6d37417bbe1183cda3.png](https://i-blog.csdnimg.cn/blog_migrate/b111ea0cb0a80b16b47d87708a8c13ac.jpeg)
![fe4322ab902fad1a61f411a9ae9ec990.png](https://i-blog.csdnimg.cn/blog_migrate/66e980ef5c02825dd9f21a6e6da35f29.jpeg)
![5d66928e0a24365e6488e827e24c4845.png](https://i-blog.csdnimg.cn/blog_migrate/21dfddf810f0287cb01f8a21cb874992.jpeg)