参考着改吧:
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