|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
抽奖附件:
choujiang.zip
(55.9 KB, 下载次数: 23)
倒计时附件:
倒计时 ok.zip
(38.22 KB, 下载次数: 17)
实现抽奖,一次抽10个人,
开始本来打算每次随机取10个人并显示,然后马上取另外10个,并连续取,达到人名随机闪动的效果.
但是这个随机过程实在是太慢了.很容易让人感觉抽奖是在作弊. 因为看到某个人名显示出来还可以来得及按停止.
所以我没办法,退而求其次, 当按了开始按钮后, 进入倒计时状态, 10秒倒计时结束的时候显示的哪10个人,就是哪10个人得奖.
现在问题来了,如何把这个计时器加入到这个过程里?
随机产生人名过程好做, 倒计时过程也好做.
但是同时让这二过程一起发生, 倒计时结束的时候 结束掉 随机过程 , 这个谁帮忙看看怎么写代码?
- Option Explicit
- Public a, k As Integer
- Sub start()
- Dim wb, sh As Object
- Dim x(1 To 10), b, i, test, rg(1 To 3) As Integer
- Dim na(1 To 66) As String
- Set wb = ActivePresentation.Slides(3).Shapes(1).OLEFormat.Object
- Set sh = wb.worksheets("sheet1")
- a = 0
- k = k + 1
- '把人员名单读入内存
- For i = 1 To 54
- na(i) = sh.Cells(i + 1, 1).Value
- Next
- '随机取10个数,用来取10个随机的人名.
- 10: For i = 1 To 10
- line1: test = Int(Rnd() * 66 + 1)
- For b = 1 To i
- If x(b) = test Then
- GoTo line1
- End If
- Next
- x(i) = test
- Next
- '在10个格子里显示取到的10个随机人名
- For i = 1 To 10
- ActivePresentation.Slides(3).Shapes(i + 1).TextFrame.TextRange.Text = na(x(i))
- Next
- DoEvents
- If a = 1 Then Exit Sub
- GoTo 10
-
- End Sub
- Sub Finish()
- '按钮开关
- a = 1
- ActivePresentation.Slides(3).Shapes(12).TextFrame.TextRange.Text = "Round " & k
- End Sub
复制代码
|
|