将原来抽奖工作表“Sheet1”更名为“抽奖”,修改、设计和美化抽奖界面,让抽奖滚动显示的信息在B3和C3单元格中,再为工作表添加漂亮的背景图片,让其界面更漂亮,调整好颜色、字体及两个按钮的位置。接下来在B3和C3单元格中分别输入公式“=OFFSET(参与抽奖人员信息!$A$1,抽奖!$Z$3.0)”和“=OFFSET(参与抽奖人员信息!$B$1,抽奖!$Z$3,0)",当前Z3单元格的数值为“0”(如图6)。
再新建一个工作表命名为“抽奖结果”,在“抽奖结果”工作中设计和美化好存放中奖结果的表格。
小提示:
这里用到Excel函数“OFFSET”,它是用来以指定的引用单元格为参照系,通过给定偏移量得到新的引用。如在“抽奖”工作表中的B3单元格使用的公式:=OFFSET(参与抽奖人员信息!$A$1,抽奖!$Z$3,0),意思就是以“参与抽奖人员信息”工作表中A1单元格为参照单元格,在该工作表中向下移动 “抽奖”工作表中Z3单元格中随机产生的数字个单元格,再向右移。个单元格,取出“参与抽奖人员信息”工作表中这个单元格的值,写入到“抽奖”工作表B3单元格中。选用Z3单元格作为随机数生成单元格,主要是为了方便隐藏,不让其数字变化在抽奖主界面出现,而影响美观。
Step2:修改宏代码
切换到“抽奖”工作表,打开VBA编辑窗口,原代码中保留播放停止音乐的两个宏,其它代码全删除,再将下面的宏代码写入到其中(如图7)。
Dim a As Integer’定义公共变量
Dim i As Integer’定义一个新的公共变量i
Private Declare Function mciExecute Lib "winmm.
d11" (ByVal lpstrCommand As String) As Long’写在同一
行
Sub开始抽奖()
a=0
Randomize’初始化
10:
Cells(3, 26)=Int(Rnd()*300)+1
DoEvents.释放程序控制权
If a=1 Then Exit Sub’如果按下“结束”钮则终
止程序
GoTo 10’指针返回到标记点“10:”进行循环
End Sub
Sub抽奖结束()
A=1’结束标志
i=i+1
Sheets(”抽奖结果,').Cells(i+3,2)=Cells(3, 2)
Sheets(”抽奖结果,').Cells(i+3,3)=Cells(3, 3)
End Sub