ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1607|回复: 3

[求助] 倒计时效果和动态抽奖结合,如何处理2个任务?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-1-8 17:01 | 显示全部楼层 |阅读模式
抽奖附件:
choujiang.zip (55.9 KB, 下载次数: 23)

倒计时附件:
倒计时 ok.zip (38.22 KB, 下载次数: 17)


实现抽奖,一次抽10个人,
开始本来打算每次随机取10个人并显示,然后马上取另外10个,并连续取,达到人名随机闪动的效果.
但是这个随机过程实在是太慢了.很容易让人感觉抽奖是在作弊. 因为看到某个人名显示出来还可以来得及按停止.

所以我没办法,退而求其次, 当按了开始按钮后, 进入倒计时状态, 10秒倒计时结束的时候显示的哪10个人,就是哪10个人得奖.

现在问题来了,如何把这个计时器加入到这个过程里?

随机产生人名过程好做, 倒计时过程也好做.
但是同时让这二过程一起发生, 倒计时结束的时候 结束掉 随机过程 , 这个谁帮忙看看怎么写代码?




  1. Option Explicit

  2. Public a, k As Integer

  3. Sub start()
  4.     Dim wb, sh As Object
  5.     Dim x(1 To 10), b, i, test, rg(1 To 3) As Integer
  6.     Dim na(1 To 66) As String
  7.     Set wb = ActivePresentation.Slides(3).Shapes(1).OLEFormat.Object
  8.     Set sh = wb.worksheets("sheet1")
  9.     a = 0
  10.     k = k + 1

  11. '把人员名单读入内存
  12.     For i = 1 To 54
  13.     na(i) = sh.Cells(i + 1, 1).Value
  14.     Next

  15. '随机取10个数,用来取10个随机的人名.
  16. 10:     For i = 1 To 10
  17. line1:  test = Int(Rnd() * 66 + 1)
  18.         For b = 1 To i
  19.             If x(b) = test Then
  20.             GoTo line1
  21.             End If
  22.         Next
  23.         x(i) = test
  24.         Next

  25. '在10个格子里显示取到的10个随机人名
  26.     For i = 1 To 10
  27.     ActivePresentation.Slides(3).Shapes(i + 1).TextFrame.TextRange.Text = na(x(i))
  28.     Next
  29.     DoEvents
  30.     If a = 1 Then Exit Sub
  31.     GoTo 10
  32.    
  33. End Sub

  34. Sub Finish()
  35. '按钮开关
  36. a = 1
  37.     ActivePresentation.Slides(3).Shapes(12).TextFrame.TextRange.Text = "Round " & k
  38. End Sub
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-8 17:02 | 显示全部楼层
这些资料都是论坛里找的, 自己做了一些拼凑, 由于资料繁杂, 在此就不列人名了。

总之都谢谢了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-8 17:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用excel产生随机可以做抽奖但是投影后效果太差了, 还是ppt好看,

谁帮帮忙,谢谢了,
以上问题,如果有其他途径可以解决,也请提供一下,我目前只想到这个。

还有一个不是方法的方法, 就是点了开始按钮后,设置程序循环30次取随机,30次循环结束的时候停止。 不过这个效果肯定没倒计时好看,

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-1-8 17:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

发现发错版了,发到excel vba区了,问题特转到这里。



实现抽奖,一次抽10个人,
开始本来打算每次随机取10个人并显示,然后马上取另外10个,并连续取,达到人名随机闪动的效果.
但是这个随机过程实在是太慢了.很容易让人感觉抽奖是在作弊. 因为看到某个人名显示出来还可以来得及按停止.

所以我没办法,退而求其次, 当按了开始按钮后, 进入倒计时状态, 10秒倒计时结束的时候显示的哪10个人,就是哪10个人得奖.

现在问题来了,如何把这个计时器加入到这个过程里?

随机产生人名过程好做, 倒计时过程也好做.
但是同时让这二过程一起发生, 倒计时结束的时候 结束掉 随机过程 , 这个谁帮忙看看怎么写代码?

附件及在这个帖:
http://club.excelhome.net/forum.php?mod=viewthread&tid=1087154&extra=

点评

合并到这里了。  发表于 2014-1-8 17:16
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 15:51 , Processed in 0.028563 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表