Dim Cx As Integer Private Sub Command1_Click() Randomize Dim a(1 To 10) As String a(1) = "小刘" a(2) = "小李" a(3) = "小马" a(4) = "小张" a(5) = "小秦" a(6) = "小熊" a(7) = "小黄" a(8) = "小兰" a(9) = "小周" a(10) = "小陈" Dim i As Integer sc: i = Int(10 Rnd + 1) If i = Cx Then GoTo sc Cx = i Label1Caption = a(i) End Sub
Randomize 语句
语法
Randomize [number]
可选的 number 参数是 Variant 或任何有效的数值表达式。
说明
Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。
如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。
注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。
Randomize 语句示例
本示例用 Randomize 语句初始化随机数生成器。由于忽略了数值参数, 所以 Randomize 用 Timer 函数的返回值作为新的随机数种子值。
Dim MyValue
Randomize ' 对随机数生成器做初始化的动作。
MyValue = Int((6 Rnd) + 1) ' 生成 1 到 6 之间的随机数值。
我为你写了一个自定义函数,请试下。代码如下:
Function Myrand(PartAre As Range, Part As String) As String
'PartAre 部门所在区域;
'Part 你期望抽查的部门,可以是字符,也可以是单元格
'eg: =Myrand($A$1:$A$8,"ENG") 或者 =Myrand($A$1:$A$8,A3)
partnum = 0
For Each m In PartAre
tmpStr = mText
If UCase(tmpStr) = UCase(Part) Then partnum = partnum + 1
Next m
randnum = Int(partnum Rnd()) + 1
partnum = 0
For Each m In PartAre
tmpStr = mText
If UCase(tmpStr) = UCase(Part) Then
partnum = partnum + 1
If partnum = randnum Then Exit For
End If
Next m
Myrand = Cells(mRow(), mColumn() + 1)Text
End Function
用法:
部门在A1~A8,人员在B1~B8(函数自动从部门后一列取人员),则在其他单元格中输入公式:
=Myrand($A$1:$A$8,"ENG") 或者 =Myrand($A$1:$A$8,A3)
注:A3中的所填写的内容为 ENG
不清楚可以Hi我。
GoodLuck!
以上就是关于VB的不重复点名软件怎么做全部的内容,包括:VB的不重复点名软件怎么做、VB不重复点名软件的问题、在EXCEL中如何用VB做一个随机点名系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)