求Excel抽奖程序,有一个30人的名单,每点击一下按钮就不重复抽取并显示一个姓名,直至30人全部抽完。
的有关信息介绍如下:
求Excel抽奖程序,有一个30人的名单,每点击一下按钮就不重复抽取并显示一个姓名,直至30人全部抽完。
你需要再加一个初始化按钮,代码如下(commandbutton1就是你的next,commandbutton2是初始化按钮)
Dim arr(), count
Private Sub CommandButton1_Click()
If count <= 29 Then
n = Int(Rnd * (UBound(arr) - LBound(arr) + 1)) + LBound(arr)
TextBox1.Text = 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
TextBox1.Text = ""
For i = 1 To 30
arr(i) = Cells(i, 1)
Next
MsgBox "已初始化"
count = 0
End Sub



