基于Excel VBA的随机滚动抽奖系统设计与实现

基于Excel VBA的随机滚动抽奖系统设计与实现


2024年4月30日发(作者:)

数据库与信息管理 

D^T^B^SE&INFORMATION M^HAGE 

基于Excel VBA的随机滚动抽奖系统设计与实现 

黄钢 

(雅发 }\f 技术学院,IJtl川I雅安625000) 

摘 要:公司单位在组织活动时,大都会有一个抽奖环节来活跃气氛 抽奖方式也有很多,其中波常 

见的是利用抽奖软件在大屏幕上进行随机滚动抽奖 目前这类软件也不少,介绍了通过Ex('eI VBA来 

制作一个随机滚动抽奖系统 

关键词:Ex(・el软件;VBA语言,随机抽奖 

日前网络 有许多类似的抽奖系统 、经过下载试 

j{j,发现小少系统存在以卜问题: (1)功能齐全,但 

操作复杂, 若要较好的电脑水平才能操作: (2)内部 

使用,通』tJ性不强,; (3)需要注册, f则无法使用, 

有的还需要给钱 能使J}J; (4)无法保存l拼1奖记录, 

抽奖过后需要人l 于动记求抽奖结果; (5)重复l抽奖, 

同一次抽奖,一人 现多次等 。 

针对以I:问题,利用 xc'elVba制作_r~个操作简单、 

通用性强、 重复抽奖、能够保存记求的抽奖系统。 

l 系统结构 

在Ofti(・e2010环境下,打开Excel新建两个l 作表: 

“抽奖”、“ 及参数” 

“抽奖”f 作表用来作为于I“奖界面,此界向将作为 

主要界面、“抽奖”界面包含抽奖滚动显 ≮域(默认 

抽取l0名)和栩父的文 j :参数以及4个At tiveX控件 

按钮“开始州1奖”、 “ 己求巾奖名单”、 “参数设置”, 

并存指定1)‘=域{1I!.爪滚动时川及已抽奖次数,滚动时问呵 

『{行没置,圳 1所示,为使 面简洁美观,在实际操 

作中可以隐藏A列 、 

图1“抽奖”工作表 

“名单殷参数”T 作表,A列剑E列仔放参数(参 

数l、参数2)及名单(包含:编号、姓 、电话),如 

罔2所示:H列刮J列存放本系统的相关参数,包括: 

“于}¨奖过 爪”、 “抽奖结束显爪”、 “领奖 式 

示”、“活动 称”,这 内 1if【j会 {ff1奖过 川1 J所呈 

现。在参数设 F 附上使jI J,J‘法该1)( 域还 放・个 

Ac・liveX榨件按钮,J{J来返 j1{1奖贞 ,殳¨降i 3昕爪 

£ E 

簸j 氟 Ⅲ}?菇 《 哥l姓_嚣 { 电远 

: (

 j

0f

325

06 ̄65掂 ~ 7

7 ;S 

一}

r 

一L j“ :P

! f 薯 

[1

i:

 23

 3 ■l: i

~1 2~3 

 

i 

}0 SlS2{S6S 0  .3  I舛j {l 13 2 l: 《』 

图2“名单及参数”工作表参数部分 

图3“名单及参数”工作表设置部分 

2功能实现及难点 

2.I难点与突破 

经过分析干¨测试。直接利川随机函数搜A找 数能 

够快速实现功能, 这种做法仃 j1h ̄lY.1 内现象, 

同一次抽奖rfI,一条记录 ,ffi ̄会…现多次 此. 

“ 单及参数”I 作表中.引入参数l lf1】参数2,『』IJl纠2 

所爪 参数l“接J1J RAND 数广: 与c列编‘j对J 

的足够多的随机数.参数2 JI J|{ANK函数汁钎:这止 随饥 

数住相应范 内对应的排名, “}lI1奖”l 作 (O,H 

2)巾的A列编 接引川参数2的 l0个fIli= 参 

数l足随机H{现的.并R.随机刮r小数点后第9 f ,邶 

么随机的两个数卡H同的慨率儿 趋近于零,J 以卡¨幢的 

参数2相同的排铝值…现的概牢u土儿乎趋近r零, 终 

作者简介:数删(1989一), ,助教,学f:,fiJ1=究 

向:信息管 1j.信息系统。 

收稿日期:2017—08—23 

~ i 盛缡程2技O 亭61 

实用第一 智慧密集 

A列l0个编弓‘重复l{J现的情况也可以忽略不计。这样 

操作设置过后,最大程度地保证r l0个随机数中小会 

a=Format(Date,“WW年m月d日II) 

b=Format(Time,”hh时mm分SS秒”) 

彳『承复值…现的情况。fn1此在同一次抽取…t不会出现重 

复 求,从而解决J 这一难题。 

2.2参数及函数设置 

(1)“抽奖”I 作表,如图l所示 、A4单元格“= 

名单及参数!B2”,B4 元格输人数字l,C4单元格 

C=Sheets(”名单及参数”).Range(”i7“) 

d=“中奖名单” 

e=Sheets(“抽奖“).Range(“g4“) 

If e:=0 Then 

MsgBox“还未开始抽奖,不能保存!” 

Else 

VI OOKUP(A4,名单及参数!C:E,2,FAI SE)”,D4单元 

Range(“B3:D52“).Select 

格“=VLOOKUP(A4, 及参数!C:E,3,FALsE1”,均依 

次向下填充到13行:【;3单元格存放滚动时njJ;G4 

元格存放已抽奖次数:E7单元格“=名单及参数!I7”。 

(2) “名单及参数”r 作表,如图2、冈3所示 

A2单元格“=RAND0”,B2单元格“=RANK(A2,A:A)”, 

均依次向下填充;I3单元格存放抽奖过程 示内容;I4 

单元格存放抽奖结束 示内容:I5单元格存放领奖方式 

,l】 容;I7单元格存放活动名称。 

部分参数会在VBA按钮代码中进行fj1人,并在抽 

奖过 中得到体现 

3 VBA按钮代码 

3.1“开始抽奖”按钮 

{:¨关代码如下: 

Dim a 

Dlm b C,d As String 

a=Sheets(”抽奖“).Range(”g3”) 

b=Sheets(“名单及参数”)。Range(”i3”) 

c=Sheets(”名单及参数”).Range(”i4”) 

d=Sheets(“名单及参数”).Range(”i5“) 

t:Timer 

While【Imer—t<=a一1 

Sheets(”抽奖”),[B1 l=b 

Sheets(”抽奖”).[B2】=…’ 

Wend 

Sheets(”抽奖“).【B 1】=c 

Sheets(”抽奖“).[B2】=d 

Range(”g4”)=Range(”g4”)+1 

说明:定义几个变缱,存放参数。在没 的滚动时 

问内,目标1 域随机滚动, 在对应 域 爪参数文字 

(相火参数住冈2所示fT4j ̄[t应区域设置),停止后g4单 

元格』J『l l,以统计抽奖次数,便于后面保存抽奖记录 、 

32“记录中奖名单”按钮 

卡¨关代码如下: 

Dim a,b,c,d,e As String 

62 

20

17

龟k

程.2技1l巧

龟囊桷程技巧与簟护、.- 

与簟 

Selection.Copy 

Sheets.Add After:=Sheets(Sheets.Count) 

Selection.PasteSpecial Paste:=xlPaste ̄/ alues 

Operation:=xlNone,SkipBlanks 

:=False.Transpose:=False 

Application.CutCopyMode:False 

ActiveSheet.Name=a&b&C&d&e 

ActiveWorkbook.Save 

MsgBox”保存成功!lI 

Sheets(“抽奖”).Select 

说明:定义变量存放 【,前时间及l卡IIY<-参数、该按钮 

的功能在于将“拊I奖}己求”保存到新建1-作& f1.新建 

作 以抽奖时问抽奖次数和活动名称作为丧 (相关参 

数均 图2所4iffj ̄lll,;ZIx:域进行设置),保仔成功后自动 

返 “抽奖界面”,如果抽奖次数为零,!I!lJ 会执行保存 

操作.即先要执行“抽奖”操作才能执行“保仔”操作。 

3.3“参数设置”、“返回抽奖页面”、“初始化抽奖次 

数”按钮 

代码分别为: 

(1)Sheets(”名单及参数”).Selec!; (2)Sheets 

(”抽奖”).Sele{-t; (3)Rallge(”g4”)=0  、

说明: “参数设置”和“返回抽奖贞 ”两个按钮 

能够}I:Hj户存使州的过程中快速进行一I 作衷的切换 、 

“卡7J始化抽奖次数”按钮会将抽奖次数归零 

4结语 

刈…抽奖”1_ 作表公式区域单元格进行锁定并隐 

藏,保护I 作表,将史什 存为启川宏的r作簿, 经过 

测试 试用,该系统能够在Office环境下 常使用,并 

具有界面简清、操作简 、通用实H】性强等优点 

参考文献 

【1】刘瑞新.VisualBask-程序设计fM1.j匕京:机械 I 

、i 版幸I:.2004. 

沈浩.Excel高级^ 川与数据分析fM1.北京:电 

子丁业 版衬:.2008. 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1714461544a2451025.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信