要完美实现可能需要编写宏,所以简单一点的办法:
1在姓名列的后一列用如下公式=INDIRECT("A"&TEXT(RANDBETWEEN(1,15),"#")) 并下拉公式;
2其中公式中A为姓名列的列号,1为姓名的开始行,15为姓名结束行,楼主依实际情况改变,
3在新产生的列用EXCEL的删除重复项功能把重复项删掉并取前10个结果 (删除重复项前先把新列复制粘贴为文本)。
1、打开excel表格,在单元格中输入姓名数据,在单元格中重复张三的姓名。
2、单击页面工具栏上的“筛选”按钮。
3、单击后,“名称”单元格上将出现一个下拉框符号。
4、单击下拉框显示一个复选框,并选中要筛选的项目前面的复选框。
5、单击“确定”在所选单元格中选择“张三”。
你需要再加一个初始化按钮,代码如下(commandbutton1就是你的next,commandbutton2是初始化按钮)
Dim arr(), count
Private Sub CommandButton1_Click()
If count <= 29 Then
n = Int(Rnd (UBound(arr) - LBound(arr) + 1)) + LBound(arr)
TextBox1Text = arr(n)
Cells(count + 1, 10) = arr(n) '测试代码可删除
Cells(count + 1, 11) = n '测试代码可删除
count = count + 1
arr(n) = arr(UBound(arr))
If UBound(arr) > 1 Then ReDim Preserve arr(1 To UBound(arr) - 1)
Else
MsgBox "所有人员都已抽完"
End If
End Sub
Private Sub CommandButton2_Click()
ReDim arr(1 To 30)
Randomize
TextBox1Text = ""
For i = 1 To 30
arr(i) = Cells(i, 1)
Next
MsgBox "已初始化"
count = 0
End Sub
以上就是关于excel如何实现不重复抽人名全部的内容,包括:excel如何实现不重复抽人名、excel怎么筛选人名、求Excel抽奖程序,有一个30人的名单,每点击一下按钮就不重复抽取并显示一个姓名,直至30人全部抽完。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)