vba随机抽取人名不重复_excel启用宏,通过vba实现从数字数组里随机获取N个不重复的数字...

我们以WPS打开excel为例:

1,要先给WPS安装VBA插件,在百度里搜索“VBA7.0.1590_For WPS(中文).exe”,然后下载安装

2,打开excel文档,在顶部菜单“开发工具”里点击“VB编辑器”

3,在打开的Microsoft Visual Basic编辑器里,在左侧菜单“Project(工作簿1)”上点击右键,选择插入“模块”

4,在默认打开的模块1里,输入代码:Function getRandNum(data As String, num As Integer)

'Application.Volatile '标记易失函数

Dim d As Object

Set d = CreateObject("Scripting.Dictionary") '定义字典

dataArr = Split(data, ",") '拆分

ReDim result(1 To num)

Do Until (n >= num)

randNum = VBA.Int(VBA.Rnd() * (UBound(dataArr) - 0 + 1)) '范围

keystr = dataArr(randNum)

If Not d.exists(keystr) Then

n = n + 1 '累计

d(keystr) = ""

result(n) = keystr '写入

End If

Loop

getRandNum = Join(result, ",") '组合

Set d = Nothing

End Function

5,点击保存,会让你重新保存文档为.xlsm格式

6,关闭Microsoft Visual Basic编辑器,然后都可以在表格里使用=getrandNum(data,num)公式了

7,上面公式中data,num2个参数可以直接写死,也可以从其他单元格单元格中动态读取,注意num的数字不能大于data数组中的个数,如下图所示:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值