马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

​爆竹声中一岁除,春风送暖入屠苏;千门万户曈曈日,总把新桃换旧符。

​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​–宋/王安石《元日》

年末马上就要到了,一般这个时候,每家公司基本都开始准备年终聚餐以及年终总结了,当然必不可少的肯定是大家都想得到的抽奖环节了

比如特等奖:华为mate30

一等奖:电动自行车

。。。

幸运奖:50元现金

相信上面这些奖品,大家都想得到。公司抽奖有多种多样,比如每人一个标签纸,统一放到纸箱上抽奖,今天给大家分享个抽奖小工具,使用Excel来实现,不过这个需要用到VBA的一些知识,大家可以直接使用。

首先看下成品效果,操作步骤先点击【立即抽奖】,当需要停止的时候,点击【停止抽奖】,最后选中需显示人员名称单元格,再点保存即可。

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

下面就给大家讲下,这是如何实现的。

操作步骤:

1、首先我们需要准备好人员清单,人员清单包含【工号】及【人员名单】信息,统一放置在[人员名单]工作表内,因工号是唯一的,这样同时实现可避免抽奖出现相同名字的人员

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

2、制作抽奖界面样板,首先我们先设置各奖项人员显示位置,在B2:B8位置分别输入各奖项的名称,并添加相应的背景色等内容

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

再添加抽奖使用的背景样式

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

3、我们在A1单元格输入如下公式:

=RANDBETWEEN(2,COUNTA(人员名单!A:A))

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

RANDBETWEEN函数,随机生成区间2~COUNTA(人员名单!A:A)之间的随机数

因我们【人员名单】第一行是标题,故需要从2开始,返回的是随机的行数

再在A2单元格输入公式:

=INDEX(人员名单!A:B,抽奖系统!A1,1)&CHAR(10)&INDEX(人员名单!A:B,抽奖系统!A1,2

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

公式运行后及得到工号及人员名称,Char(10)为换行符,起到自动换行作用

​4、制作抽奖显示窗口,点击插入【文本】-【横向文本框】,输入文字,设置字体颜色为红色,字号选择28,加粗,去除文本框的框线及背景色

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

再点击显示窗口,输入公式:=A2

即把A2单元格的内容显示到文本框中,这是只要我们按F9,可以看到姓名随着变更了

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

5、插入抽奖及保存抽奖信息的窗口,点击【插入】,选择矩形,设置边框为白色,无填充,输入文字:开始抽奖,字号24,字体:华文彩云

分别插入3个矩形,命名为:立即抽奖;停止抽奖;保存抽奖

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

6、编写VBA代码,右击工作表名称-【查看代码】,输入如下三段代码

PrivateDeclarePtrSafe SubSleepLib"kernel32"(ByVal dwMillisecondsAsLong)'暂停 64位系统'PrivateDeclareSubSleepLib"kernel32"(ByVal dwMillisecondsAsLong)'暂停  32位系统Dim mark As BooleanSub 立即开始()  [A2] = "=INDEX(人员名单!A:B,抽奖系统!A1,1)&CHAR(10)&INDEX(人员名单!A:B,抽奖系统!A1,2)"    mark = True    Do While mark        DoEvents        Sleep 50        ActiveSheet.Calculate    LoopEnd Sub

Sub 停止抽奖()  mark = FalseEnd Sub

Sub 保存抽奖()  CH = [A1]  ActiveCell = [A2]  Sheets("人员名单").Cells(CH, 1).EntireRow.Delete  Application.EnableEvents = False    [A2] = ""  Application.EnableEvents = TrueEnd Sub

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

7、再分别右击插入的矩形框,点击【指定宏】,分别指定以上设置的宏命令

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

这样一个抽奖小程序就做好,我们只要点击【立即抽奖】,再点击【停止抽奖】按钮,最终保存抽奖人名,即可。

马上年会了,用Excel函数及VBA制作个抽奖小程序,来了解下吧(excel用vba做抽奖系统)

此方法主要是应用了INDEX及RANDBETWEEN函数,再结合VBA程序制作而成。

数据原始档案,可从以下网盘下载:

链接: https://pan.baidu.com/s/19BsAE8M1IRk9MOxUG78FHQ

提取码: hq3q

如果觉得文章对你有帮助的话,希望大家帮忙点赞加分享哦~,谢谢

本文由彩虹Excel原创,欢迎关注,带你一起长知识!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月6日 上午10:08
下一篇 2023年4月7日 上午9:18

相关推荐