Option Explicit
Private Sub Command1_Click()
Dim i As Long
Dim j As Long
Dim m As Long
Dim q(1 To 100) As Boolean
Dim jg(1 To 33, 1 To 3) As Long
For i = 1 To 100
'初始化未使用的数据
q(i) = False
Next i
For i = 1 To 33
For j = 1 To 3
m = Int(Rnd() * 99) + 1
'产生一个数据
Do While q(m)
'是否用过
'第一种处理办法:重新产生,有可能会继续重复
'm = Int(Rnd() * 99) + 1
'第二种处理办法:向下搜索第一个未使用的数据
m = m + 1
If m > 100 Then m = 1
Loop
jg(i, j) = m
'使用该数据
q(m) = True
'标记为使用了
Next j
Next i
'显示结果
Cls
For i = 1 To 33
For j = 1 To 3
Print jg(i, j);
Next j
Print
Next i
'搜索并显示未使用的数据
For i = 1 To 100
If Not q(i) Then
Print i
End If
Next i
End Sub