vba随机抽取人名不重复
时间: 2023-07-29 22:11:27 浏览: 131
你可以使用VBA中的数组和随机数生成函数来实现随机抽取人名不重复的功能。以下是一个简单的示例代码:
```
Sub RandomPick()
Dim names() As Variant
Dim picked() As Variant
Dim i As Integer
Dim j As Integer
Dim n As Integer
'将人名存放在数组中
names = Array("张三", "李四", "王五", "赵六", "钱七")
'初始化已选人名的数组
ReDim picked(UBound(names))
For i = LBound(picked) To UBound(picked)
picked(i) = False
Next i
'随机抽取人名
For i = LBound(names) To UBound(names)
Do
n = Int((UBound(names) - LBound(names) + 1) * Rnd + LBound(names))
Loop While picked(n)
picked(n) = True
Debug.Print names(n)
Next i
End Sub
```
在这个示例代码中,我们首先将人名存放在一个数组中,然后初始化一个与人名数组大小相同的布尔数组,用来记录每个人名是否已被抽取。接着,我们使用循环随机抽取人名,并在每次抽取时检查已选人名的数组,确保不会重复抽取同一个人名。最后,我们将抽到的人名输出到调试窗口中。
你可以根据自己的需要修改人名数组和输出方式。