班级制作随机抽取座次号进行排位的VB程序
我编写的代码如下。虽然能够进行摇号,但是摇过的号会重复出现,如果让已出现的号不在参与摇号,请指教,Option Explicit
Private isLoop As Boolean
Private Sub Command1_Click()
isLoop = True
Randomize
While isLoop
Label1.Caption = Int(Rnd * 10 + 1)
DoEvents
Wend
End Sub
Private Sub Command2_Click()
isLoop = False
End Sub
Private Sub Form_Load()
isLoop = False
Command1.Caption = "开始"
Command2.Caption = "停止"
End Sub
一个label控件和两个cmmand控件
大哥不好意思啊,能不能帮我一块添加进我的代码里啊,不胜感激。
追答你的代码我看不来,把你的要求描述清楚我直接给你写,我很少看别人的代码。
追问设计一个摇号器,60个数,你把我的代码直接复制 然后运行。就是基本效果, 但是要求摇过的号不再出现。 就是60是个座位,像抽奖一样,数字在滚动,然后点停会出现一个数字,数字 出现以后就不再出现,然后继续摇号,以此类推。。。。谢谢!
追答’把你的代码换成我的试试
Option Explicit
Const Num = 60
Dim flag As Boolean, dic As Object
Private Sub Command2_Click()
flag = True
End Sub
Private Sub Form_Load()
With Label1
.AutoSize = True
.FontSize = 40
.ForeColor = vbRed
.Caption = "点击开始按钮随机选号"
End With
Command1.Caption = "开始"
Command2.Caption = "停止"
Set dic = CreateObject("scripting.dictionary")
End Sub
Private Sub Command1_Click()
Dim n
flag = False
If dic.Count = Num Then
Label1.Caption = "无号可选!"
Exit Sub
End If
Do Until flag
Label1.Caption = Int(Rnd * Num + 1)
DoEvents
Loop
Do
n = Int(Rnd * Num + 1)
If Not dic.Exists(n) Then
dic.Add n, ""
Label1.Caption = n
Print n '可以取消
Exit Do
End If
Loop
End Sub