用excel的随机函数配合index函数可以很方便的实现从一组数据中随机抽取单个数据,常用于抽奖小程序。但若想让抽奖时数据跳动一段时间再出现最终的结果,就好像真正的抽奖一样,只用函数就不好实现了。今天给大家分享一个能控制抽取跳动时间和跳动方式方法,很简单的vba代码。

先看看效果

每次抽取3个人,第一种方式为三个名字同时跳动,第二种方式为三个名字依次跳动,第三种方式为未设置跳动方式名字基本同时出现,缺乏抽奖的感觉。

设置数字调节器控制跳动的时间长短,数字越大跳动时间越长,可自由选择。

第一种方法为先将三个目标单元格在for循环里进行赋值,循环结束后再另外赋值。

 For i = 2 To [m2] * 2 Cells(2, 6) = Cells(Application.Max(i Mod 16, 1), 1) Cells(2, 7) = Cells(Application.Max(i Mod 16, 1), 1) Cells(2, 8) = Cells(Application.Max(i Mod 16, 1), 1) Next  Cells(2, 6) = Application.WorksheetFunction.Index(Cells(2, 1).Resize(16, 1), Application.WorksheetFunction.RandBetween(1, 16)) Cells(2, 7) = Application.WorksheetFunction.Index(Cells(2, 1).Resize(16, 1), Application.WorksheetFunction.RandBetween(1, 16)) Cells(2, 8) = Application.WorksheetFunction.Index(Cells(2, 1).Resize(16, 1), Application.WorksheetFunction.RandBetween(1, 16)) 

第二种方法为对每个目标单元格依次进行for循环后赋值,上一个单元格赋值完成后再进行下一个单元格的循环和赋值

For i = 2 To [m2] * 4 Cells(4, 6) = Cells(Application.Max(i Mod 16, 1), 1) Next Cells(4, 6) = Application.WorksheetFunction.Index(Cells(2, 1).Resize(16, 1), Application.WorksheetFunction.RandBetween(1, 16)) For i = 2 To [m2] * 4 Cells(4, 7) = Cells(Application.Max(i Mod 16, 1), 1) Next Cells(4, 7) = Application.WorksheetFunction.Index(Cells(2, 1).Resize(16, 1), Application.WorksheetFunction.RandBetween(1, 16)) For i = 2 To [m2] * 4 Cells(4, 8) = Cells(Application.Max(i Mod 16, 1), 1) Next Cells(4, 8) = Application.WorksheetFunction.Index(Cells(2, 1).Resize(16, 1), Application.WorksheetFunction.RandBetween(1, 16))

时长数值放在m2单元格,用于在代码里控制时间长短。

插入数值调节器时尽量选用Active控件,便于设置调节器颜色,利于美观。插入调节器控件后,设置好相关属性,

最后给抽取按钮和重置按钮指定对应的宏代码,就完成全部操作了。

总结

本案例只是用了很少也很简单的代码就解决了问题,其实vba不难,不要被吓倒了,只要用心,代码能给我们解决很多难题,想学代码或函数的欢迎加入跟着我们一起学习。另外欢迎收藏、关注、点赞、留言,任选一项都行。

dev里timeedit控件如何赋值_抽奖程序里的字节跳动模式和时长控制,让抽奖更有仪式感!...相关推荐

  1. dev里timeedit控件如何赋值_如何制作高逼格的数据地图(二)

    上一期介绍的是如何通过Power Map制作数据地图.但如果Excel在没有安装该组件,应该怎么办?如果希望实现更加个性化的设置,又有什么方法? 那么,通过VBA代码也可以实现数据地图的制作. 相比之 ...

  2. 玩转控件:对Dev的GridControl控件扩展

    缘由 一切实现来源于需求,目的在于不盲目造轮子,有小伙伴儿在看了<玩转控件:对Dev中GridControl控件的封装和扩展>文章后,私信作者说,因公司业务逻辑比较复杂,展示字段比较多,尤 ...

  3. 玩转控件:对Dev中GridControl控件的封装和扩展

    清明节 清明时节雨纷纷 路上行人欲断魂 借问酒家何处有 牧童遥指杏花村 又是一年清明节至,细雨绵绵犹如泪光,树叶随风摆动.... 转眼间,一年又过去了三分之一,疫情的严峻让不少企业就跟清明时节的树叶一 ...

  4. mfc中在vector里添加控件类型的数据时出现C2248错误

    @mfc中在vector里添加控件类型的数据时出现C2248错误 这是我在.h文件中定义的2个容器 public:vector<CComboBox*> cbx;vector <CSt ...

  5. c#里什么控件可以播放视频(avi)?怎么实现

    Q: c#里什么控件可以播放视频(avi)?怎么实现 A: DirectShow MediaPlayer in C# 参考http://www.codeproject.com/cs/media/dir ...

  6. 实现picturecontrol控件显示图片_陕西曝光机触摸屏实时数据控件

    随着市场需求的快速发展,PCB行业对产能的要求与日俱增.为了在保证品质的前提下快速提高产能,PCB曝光领域掀起了一场新的革命,那就是对传统曝光机进行UVLED改造,用UVLED光源代替传统汞灯.目前市 ...

  7. VC控件MSComm编写串口通信程序

    转载:http://blog.csdn.net/liangzhao_jay/article/details/45647229 在众多网友的支持下,串口调试助手从2001年5月21日发布至今,短短一个月 ...

  8. windows家长时长控制_如何在Windows 7中使用家长控制

    windows家长时长控制 The Parental Controls feature is a valuable tool for controlling the amount of time yo ...

  9. windows家长时长控制_如何在Windows 7上使用家长控制

    windows家长时长控制 Without some layer of protection, your kids are exposed to all kinds of risks and dang ...

最新文章

  1. 30分钟搞定数据竞赛刷分夺冠神器LightGBM!
  2. Android Activity要点(2)
  3. JS中的call、apply、bind方法详解
  4. pip更换源 windows10_Conda及Pip换源处理
  5. .Net FrameWork中的網絡操作
  6. 将Gatling集成到Gradle构建中–了解SourceSet和配置
  7. 《跟我一起写Makefile》读书笔记(1)
  8. java语言就业方向_四大就业方向彻底解决你学习Java语言编程的后顾之忧-生活感悟与随笔 -亦是美网络...
  9. [cb]SceneView 获取鼠标位置
  10. ComputeColStats UDF中 近似算法的介绍(续)
  11. OpenSSL生成root CA及签发证书
  12. 信号与系统—傅里叶级数
  13. Windows10 部分系统无法安装USB转串口驱动问题解决
  14. linux 开启共享文件,文件夹共享权限设置,linux设置文件夹权限-
  15. 国外云服务器有哪些?国外云服务器大全
  16. 新手教程,网站建设第一步:织梦之家Dede程序的下载和安装
  17. pandas 公益学习 综合练习与学习总结
  18. 英文斜体复制_斜体英文转换器,斜体英文26个字母可复制
  19. 这次经历给我埋下了学理财的种子
  20. firefox浏览器window.event is undefined问题

热门文章

  1. Insert SQL Query插入效率优化
  2. 160921、React入门教程第一课--从零开始构建项目
  3. 图的理解:深度优先和广度优先遍历及其 Java 实现
  4. 优化tableView性能(针对滑动时出现卡的现象)
  5. MySql 几个命令
  6. GoDaddy服务器MySQL配置文件,仅供参考
  7. 全球最快学术超算Frontera,也用英特尔至强可扩展处理器
  8. 6大最流行、最有用的自然语言处理库对比
  9. Labview串口通信
  10. vc6.0出现无法解析错误