vb产生随机数
的有关信息介绍如下:我理解为1-50的数字中,随机取8个
需要两个控件text1和command1
代码如下:
Option Explicit
Dim i, j, k
Dim s(8)
Dim cf As Boolean
Private Sub Command1_Click()
Text1.Text = ""
i = 1
Do While i <= 8 '第一层循环,用于取8个数
cf = False '是否取到了重复的数
Randomize
k = Int(Rnd() * 50) + 1 '获取随机数
For j = 1 To i '第二层循环,判断是否取到的数字发生了重复
If k = s(j) Then '当发生重复的时候标记cf变量
cf = True
Exit For
End If
Next
If cf = False Then '如果取得数字没有重复,进行赋值,并显示在text1文本框
Text1.Text = Text1.Text & k & Chr(13) & Chr(10)
s(i) = k
i = i + 1 '继续取下一个数字,直到i=8
End If
Loop
Printer.FontSize = 30 '打印字体大小
Printer.Print Text1.Text '打印文本框
Printer.EndDoc '输出打印
End Sub
数字8代表要取多少个,数字50代表总共有多少数字,自己修改就行了
当随机数恰好等于50.00000的时候会出错,这个情况大约有10万分之一的可能性
可以将If k = s(j) Then改成If k = s(j) or k=51 Then来排除
要把50个数字改成50个名字
只要在form_load的时候做一个数组
dim name(50)
name(1)="张三"
name(2)="李四"
…………
然后将代码部分的k改成name(k) ,数组s(j) s(i)也要改成name(j) name(i)
for i=1 to 8
Printer.Print name(i)
next
这样打出来的是姓名
打印格式自己设定