关于VB摇号器的问题!!急急急急急!!!

班级制作随机抽取座次号进行排位的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控件

'自己修改,用字典给你写
Option Explicit
Dim dic
Private Sub Command1_Click()
Dim n
Do
n = Int(Rnd * 10 + 1)
If dic.Count = 10 Then Exit Do
If Not dic.Exists(n) Then
dic.Add n, ""
Print n
Exit Do
End If
Loop
End Sub
Private Sub Form_Load()
Set dic = CreateObject("scripting.dictionary")
End Sub追问

大哥不好意思啊,能不能帮我一块添加进我的代码里啊,不胜感激。

追答

你的代码我看不来,把你的要求描述清楚我直接给你写,我很少看别人的代码。

追问

设计一个摇号器,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

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜