算法:
1.將姓名都裝入一個數組
2.記錄下課隨機的數量a,默認爲數組長度
3.隨機產生0~a的一個整數i
4.將數組arr(i)寫入文件,同時將arr(i)和arr(a)交換,並且a--
5.重複執行3
代碼實現:
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
運行結果: