当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

EXCEL中通过VBA宏编写一个简易抽奖小工具

最近有粉丝在后台向我提了一个工作中的小需求,具体如下:

■ 因为公司要组织一个知识竞赛,其中有一个游戏环节,需要从一组名单中随机选出指定数量的人员参加游戏,并且需要在大屏中滚动名单以增强游戏紧张感。当然最重要的是最终被选中的名单中不能有重复名单出现。她希望能通过Excel来实现这个需求。

需求分析:其实这个需求与抽奖非常类似,我们可以通过Excel的VBA宏功能来编写一个小工具来实现这个需求,说干就干,以下就是最终实现的成品效果:

抽奖小工具演示

功能说明:

第1步、名单在sheet2《名单维护》工作表的A列中输入

第2步、设置抽奖人数

第3步、点击开始按钮,名单开始滚动

第4步、点击停止按钮,出现获奖人员名单


制作步骤如下:

第一步:制作表格

  • 建立两个工作表,分别为《抽奖页面》和《名单维护》页面。将待抽奖名单放在《名单维护》页的A列,其中A1单元格为标题

第二步:编写代码

  • 点击开发工具-Visual Basic, 或按下快捷键 ALT + F11 启动 Visual Basic for Applications 窗口
  • 在“插入” 菜单上,单击“模块”
  • 在出现的模块1代码窗口中,复制并粘贴以下代码:

#If VBA7 Then

Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)

#Else

Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)

#End If

Dim mark As Boolean

Sub 立即开始()

mark = True

Do While mark

DoEvents

Sleep 100

抽奖

Loop

End Sub

Sub 停止抽奖()

mark = False

End Sub

Sub 抽奖()

Dim M&, N&, i&, j&, arr

Dim d As Object

Set d = CreateObject(";)

arr = S("A2:A" & S("A65536").End(xlUp).Row)

Range("B4:B65536").ClearContents

M = Range("D4")

N = UBound(arr)

If N < M Then MsgBox "人数超出" & N: Exit Sub

Do While i < M

j = Int(Rnd() * N + 1)

If Not d.exists(j) Then

i = i + 1

d(j) = arr(j, 1)

End If

Loop

Range("B4").Resize, 1) = A)

End Sub

写入代码

第三步:插入命令按钮

  • 通过开发工具——插入——Active控件,插入一个命令按钮
  • 双击这个命令按钮,输入过程名“立即开始”,并将这个按钮的caption属性改为“开始”
  • 重复以上步骤再插入一个命令按键,输入过程名“停止抽奖”,并将这个按钮的caption属性改为“停止”

插入命令按钮

第四步:名单演示美化

  • 利用条件格式设置名单的填充色和字体颜色
  • 利用公式确定要设置格式的单元格:=B1<>""

设置格式

总结:

这个小工具的核心是:利用了字典+数组实现了名单的随机不重复抽取。

如果你也有类似的需求,可以关注本头条号:千万别学Excel,并私信回复:小工具 即可获取本教程所用课件。

图文教程创作不易,请点赞、关注并转发给更多有需求的小伙伴们吧!

送人玫瑰,手有余香!

1.《EXCEL中通过VBA宏编写一个简易抽奖小工具》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《EXCEL中通过VBA宏编写一个简易抽奖小工具》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2184431.html

上一篇

100 v6怎么卡刷?总结很全面速看!光遇:万圣节渠道服省钱,华为服省105?详细攻略学起来

下一篇

03excel如何找出相同项?总结很全面速看!Excel多种重复数据查询方法,简单快速,办公必备技巧

03版怎么插入指定宏的按扭控件?终于找到答案了EXCEL中通过VBA宏编写一个简易抽奖小工具

03版怎么插入指定宏的按扭控件?终于找到答案了EXCEL中通过VBA宏编写一个简易抽奖小工具

03版怎么插入指定宏的按扭控件相关介绍,最近有粉丝在后台向我提了一个工作中的小需求,具体如下: ■ 因为公司要组织一个知识竞赛,其中有一个游戏环节,需要从一组名单中随机选出指定数量的人员参加游戏,并且需要在大屏中滚动名单以增强游戏紧张感。当...

关于03版怎么插入指定宏的按扭控件,你需要知道这些Excel办公随心所欲---自动调整列宽和行高

关于03版怎么插入指定宏的按扭控件,你需要知道这些Excel办公随心所欲---自动调整列宽和行高

03版怎么插入指定宏的按扭控件相关介绍,在日常工作中,我们经常需要根据单元格内容去调整列宽和行高的问题。要是手动去调整,这必然会很繁琐,格式上也会造成混乱。要是我们可以用点击一下鼠标的方法,所有的列宽和行高会自动做出调整,这该多棒啊.......

03版怎么插入指定宏的按扭控件看这里!EXCEL中通过VBA宏编写一个简易抽奖小工具

03版怎么插入指定宏的按扭控件看这里!EXCEL中通过VBA宏编写一个简易抽奖小工具

03版怎么插入指定宏的按扭控件相关介绍,最近,一位粉丝在后台提出了一件事的小需求,具体如下。 因为公司有游戏链接,需要从集团列表中随机选拔指定数量的人参加游戏,需要在大屏幕上滚动列表,以增加游戏紧张感。 当然最重要的是最终被选中的名单中不能...

03版怎么插入指定宏的按扭控件?我来告诉你答案EXCEL中通过VBA宏编写一个简易抽奖小工具

03版怎么插入指定宏的按扭控件?我来告诉你答案EXCEL中通过VBA宏编写一个简易抽奖小工具

03版怎么插入指定宏的按扭控件相关介绍,最近,一位粉丝在后台提出了一件事的小需求,具体如下。 因为公司有游戏链接,需要从集团列表中随机选拔指定数量的人参加游戏,需要在大屏幕上滚动列表,以增加游戏紧张感。 当然最重要的是最终被选中的名单中不能...

03版怎么插入指定宏的按扭控件看这里!插入命令按钮,用VBA代码控制工作表的显示与隐藏

03版怎么插入指定宏的按扭控件看这里!插入命令按钮,用VBA代码控制工作表的显示与隐藏

03版怎么插入指定宏的按扭控件相关介绍,详细信息,观看视频 1、准备工作 打开Excel后,创建新的工作簿,将sheet1工作表选项卡重命名为“控制面板”,然后删除sheet2、sheet3保存。在「控制台」的储存格A1 ~ A36中,储存...

03版怎么插入指定宏的按扭控件?总结很全面速看!用GTK+来创建一个带界面的C语言程序4—给窗口添加多个控件

03版怎么插入指定宏的按扭控件?总结很全面速看!用GTK+来创建一个带界面的C语言程序4—给窗口添加多个控件

03版怎么插入指定宏的按扭控件相关介绍,向窗口添加按钮已经知道如何执行,但窗口程序不能只有一个按钮控件。如果继续向窗口添加按钮,程序错误将发生,因为只能容纳一个控件。 而要容纳多个控件那又该怎么做呢?我们知道容器分为两种,能容纳多个控件的容...

03版怎么插入指定宏的按扭控件?总结很全面速看!wps中设置数值调节框,你还找不到吗?让你的日历动起来

03版怎么插入指定宏的按扭控件?总结很全面速看!wps中设置数值调节框,你还找不到吗?让你的日历动起来

03版怎么插入指定宏的按扭控件相关介绍,好不容易做了公司2020年的日历,想设置时间变化的动态调整框,在wps开发工具下面插入了数字调整框,找不到设置调整值的按钮吗?老板:不会是用了假的wps表格吧? 带着疑问,我逐一浏览wps菜单栏,在“...

03版怎么插入指定宏的按扭控件?终于找到答案了word文档中各种控件插入教程

03版怎么插入指定宏的按扭控件?终于找到答案了word文档中各种控件插入教程

03版怎么插入指定宏的按扭控件相关介绍,软件版本:软件大小:软件许可证:适用平台:1、首先打开word、新建空白文档或打开现有文档 2、在菜单栏上,单击“工具”-“宏”-“visual basic编辑器”,或按快捷键Alt F11 4.然后...