参考着改吧:
Sub Test1()
''从0~9中随机取出4个数字
''引用Microsof Scripting Runtime
Dim i As Integer, s1 As String, t1 As String
Dim j As Integer, Tj() As String, sDic As New Dictionary
Tj = Split("01 05;05 06;07 08", ";") ''得到条件数组,所有的条件用;分割
100:
sDic.RemoveAll
s1 = "" ''清空字符串
For i = 1 To 4 ''循环4次取4个数
t1 = "0" & Int(Rnd * 10) ''得到一个随机的数字,格式0#
For j = 0 To UBound(Tj)
If InStr(1, Tj(j), t1, vbTextCompare) > 0 Then sDic(CStr(j)) = "ok"
Next
s1 = s1 & IIf(s1 <> "", " ", "") & t1
Next
''判断当前获取的字符串是否满足所有的条件
For i = 0 To UBound(Tj)
If Not sDic.Exists(CStr(i)) Then GoTo 100 ''重新获取
Next
Debug.Print s1 ''输出合格的字符串
End Sub
Sub Test1()
''从0~9中随机取出4个数字
''引用Microsof Scripting Runtime
Dim i As Integer, s1 As String, t1 As String
Dim j As Integer, Tj() As String, sDic As New Dictionary
Tj = Split("01 05;05 06;07 08", ";") ''得到条件数组,所有的条件用;分割
100:
sDic.RemoveAll
s1 = "" ''清空字符串
For i = 1 To 4 ''循环4次取4个数
t1 = "0" & Int(Rnd * 10) ''得到一个随机的数字,格式0#
For j = 0 To UBound(Tj)
If InStr(1, Tj(j), t1, vbTextCompare) > 0 Then sDic(CStr(j)) = "ok"
Next
s1 = s1 & IIf(s1 <> "", " ", "") & t1
Next
''判断当前获取的字符串是否满足所有的条件
For i = 0 To UBound(Tj)
If Not sDic.Exists(CStr(i)) Then GoTo 100 ''重新获取
Next
Debug.Print s1 ''输出合格的字符串
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货