7,763
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Dim arr() As String
'初始化
Private Sub Form_Load()
arr = Split("A001,A002,A003,A004,A005,A006", ",")
End Sub
Private Sub Command1_Click()
'knuth洗牌算法将顺序打乱
Dim i As Integer
For i = UBound(arr) To LBound(arr) Step -1
Dim strtmp As String, irnd As Integer
irnd = Rnd(Now()) * i
strtmp = arr(i)
arr(i) = arr(irnd)
arr(irnd) = strtmp
Next
'输出点名顺序
For i = LBound(arr) To UBound(arr)
Me.Print arr(i),
Next
Me.Print
End Sub
Option Explicit
Dim arr
Dim a As Integer
'初始化
Private Sub Form_Load()
arr = Split("A001,A002,A003,A004,A005,A006", ",")
a = UBound(arr)
End Sub
'点一次,随机一个出来
Private Sub Command1_Click()
Dim i As Integer, intRnd As Integer, strTmp As String
If a = -1 Then
MsgBox "所有成员都随机过一次了!", vbExclamation
Exit Sub
End If
Randomize
intRnd = Int(Rnd * a)
Me.Print "索引:" & intRnd, arr(intRnd), "提取前:" & Join(arr, ",") & " 参与随机" & a + 1 & "个", '输出并写入文件
Open "结果.txt" For Append As #1
Print #1, arr(intRnd)
Close #1
strTmp = arr(intRnd)
arr(intRnd) = arr(a)
arr(a) = strTmp
a = a - 1
Me.Print "提取后:" & Join(arr, ",") & " 剩余" & a + 1 & "个"
End Sub