Randomize (Time())'放到这里试试
For i = i_txt1 + i_txt2 To i_txt2 + i_txt1 + i_txt3 - 1
100:    a(i) = Int(L_hs * Rnd) + 1
    For j = 0 To i_txt2 + i_txt1 + i_txt3
        If a(i) = a(j) Then GoTo 100 'MsgBox "error" '
    Next j
    Seek 1, a(i)                   '把指针移到文件1的第1行
    Line Input #1, inputdata    '读数据
    Debug.Print inputdata
Next i

解决方案 »

  1.   

    仍然死
    如果这样就行了
    但是,不能出现提示阿
    Randomize (Time())'放到这里试试
    For i = i_txt1 + i_txt2 To i_txt2 + i_txt1 + i_txt3 - 1
    100:    a(i) = Int(L_hs * Rnd) + 1
        For j = 0 To i_txt2 + i_txt1 + i_txt3
            If a(i) = a(j) Then MsgBox "error" 
        Next j
        Seek 1, a(i)                   '把指针移到文件1的第1行
        Line Input #1, inputdata    '读数据
        Debug.Print inputdata
    Next i
      

  2.   

    Randomize (Time())'放到这里试试
    For i = i_txt1 + i_txt2 To i_txt2 + i_txt1 + i_txt3 - 1
    100:    a(i) = Int(L_hs * Rnd) + 1
        For j = 0 To i_txt2 + i_txt1 + i_txt3
            If a(i) = a(j) Then MsgBox "error" 
        Next j
        Seek 1, a(i)                   '把指针移到文件1的第1行
        Line Input #1, inputdata    '读数据
        Debug.Print inputdata
    Next i这样肯定死定了,因为你本来就是用Randomize (Time())来控制第二个for循环的。你死循环的原因在于当i=j的时候,a(i)必定=a(j),每次进入第二个循环时都引发由If a(i) = a(j) Then GoTo 100 再次引发循环。
      

  3.   

    还有i_txt1 + i_txt2和i_txt2 + i_txt1 + i_txt3应该在循环之前赋值给一个变量,否则的话每次循环你的程序都要计算这个两个值未免太浪费了
      

  4.   

    谢谢  Lzh_lee(阿飞) 可是我怎么也得不到应该有的值
    循环30次 得到32个值
    有时候是30个
    还不一定??
    为什么??
      

  5.   

    试试不用Randomize Time()
    用Randomize