有六个数A1, A2, A3, A4, A5, A6,其中d2=5A1-A2-4A3-4A4-A5+5A6
且这六个数字在某些范围
A1 = 0.37 To 0.42 
A2 = 0.46 To 0.49 
A3 = 0.51 To 0.55 
A4 = 0.56 To 0.61 
A5 = 0.51 To 0.58 
A6 = 0.415 To 0.45 
要求输入d2能得到随机的一组数字,我写的下面Dim A1, A2, A3, A4, A5, A6 As Double
For A1 = 0.37 To 0.42 Step 0.1
    For A2 = 0.46 To 0.49 Step 0.1
        For A3 = 0.51 To 0.55 Step 0.1
            For A4 = 0.56 To 0.61 Step 0.1
                For A5 = 0.51 To 0.58 Step 0.1
                    For A6 = 0.415 To 0.45 Step 0.1
                    TxtD2.Text = "5A1-A2-4A3-4A4-A5+5A6"
                    Exit For
                    Next A6
                Next A5
            Next A4
        Next A3
    Next A2
Next A1
TxtD2.Text = ""
Trim(Text2.Text) = A1
Trim(Text3.Text) = A2
Trim(Text4.Text) = A3
Trim(Text5.Text) = A4
Trim(Text6.Text) = A5
Trim(Text7.Text) = A6
但是得不到正确数据,测试的时候发现很多数字越界,怎么写

解决方案 »

  1.   

    sub command1+click
    Dim A1 As Double, A2 As Double, A3 As Double, A4 As Double, A5 As Double, A6 As Double'必须每个数定义
    dim d2 as doublerandomize
    A1 = 0.37+(.42-.37)*rnd
    A2 = 0.46 +( 0.49  -.46)*rnd
    A3 = 0.51+(0.55  -.51)*rnd
    A4 = 0.56 +( 0.61  -.56)*rnd
    A5 = 0.51 +( 0.58  -.51)*rnd
    A6 = 0.415+( 0.45  -.415)*rndd2=5*A1-A2-4*A3-4*A4-A5+5A6
    .........
    'Trim(Text2.Text) = A1---没有这样使用的 Text2.Text=cstr(a1) ?如果要指定小数位数,使用Format 
    'Trim(Text3.Text) = A2
    'Trim(Text4.Text) = A3
    'Trim(Text5.Text) = A4
    'Trim(Text6.Text) = A5
    'Trim(Text7.Text) = A6end sub
      

  2.   

    LS的sub command1+click改为sub command1_click
      

  3.   

    Dim A1 As Double, A2 As Double, A3 As Double, A4 As Double, A5 As Double, A6 As Double
    For A1 = 0.37 To 0.42 Step 0.01
        For A2 = 0.46 To 0.49 Step 0.01
            For A3 = 0.51 To 0.55 Step 0.01
                For A4 = 0.56 To 0.61 Step 0.01
                    For A5 = 0.51 To 0.58 Step 0.01
                        For A6 = 0.415 To 0.45 Step 0.001
                            if 5*A1-A2-4*(A3+A4)-A5+5*A6=d2 then
                               text1=cstr(a1)
                               text2=cstr(a2)
                               text3=cstr(a3)
                               text4=cstr(a4)
                               text5=cstr(a5)                        end if                
                            Exit For
                        Next A6
                    Next A5
                Next A4
            Next A3
        Next A2
    Next A1