private Sub Command20_Click() 
Dim a, b, c, d, e, f, g, h, k, l, z, x, v, j, n, m, qe, fhz, ii, iq As Long 
Dim i, jj, mi(11), bb, s, dd, ww(11), ji As Integer 
Dim str, sz() As String 
  For dd = 0 To 11 
For ii = 0 To Form9.List1.ListCount - 1 
str = Form9.List1.List(ii) 
sz = Split(str, ",") 
fhz = UBound(sz) For ji = 1 To fhz - 1 
If Form9.Check1(dd).Caption = sz(ji) Then Form9.Check1(dd).Value = 1 
Next 
s = sz(0) 
    a = s Mod 10 
    b = (s \ 10) Mod 10 
    c = (s \ 100) Mod 10 
    d = a+5+6  
    e = b-7*2 
    f = d+8 
    g = a+b 
    h = a+2+3 
    k = b-1 
    l = 5-6-d 
    z = 3-2+e 
    x = 25-16+17-a 
    v = a*5 
    j = b*2 
    n = c+7 
    m = 5+a+b 
    qe = 6*c 
      If Form9.Check1(0).Value = 1 Then mi(0) = h 
        If Form9.Check1(1).Value = 1 Then mi(1) = k 
          If Form9.Check1(2).Value = 1 Then mi(2) = qe 
          If Form9.Check1(3).Value = 1 Then mi(3) = l 
            If Form9.Check1(4).Value = 1 Then mi(4) = z 
            If Form9.Check1(5).Value = 1 Then mi(5) = x 
              If Form9.Check1(6).Value = 1 Then mi(6) = v 
              If Form9.Check1(7).Value = 1 Then mi(7) = j 
                If Form9.Check1(8).Value = 1 Then mi(8) = n 
                  If Form9.Check1(9).Value = 1 Then mi(9) = m 
                    If Form9.Check1(10).Value = 1 Then mi(10) = f 
                      If Form9.Check1(11).Value = 1 Then mi(11) = g 
                            
                                For i = MSFlexGrid1.Rows - 1 To 1 Step -1 
        bb = MSFlexGrid1.TextMatrix(i, 1) 
        a = bb Mod 10 
        b = (bb \ 10) Mod 10 
        c = (bb \ 100) Mod 10 
        d = a+5+6 
        e = b-7*2 
        ww(10) = d+8 
        ww(11) = a+b 
        ww(0) = a+2+3 
        ww(1) = b-1 
        ww(3) = 5-6-d 
        ww(4) = 3-2+e 
        ww(5) = 25-16+17-a 
        ww(6) = a*5 
        ww(7) = b*2 
        ww(8) = c+7 
        ww(9) = 5+a+b 
        ww(2) = 6*c 
        If ww(dd) = mi(dd) And Form9.Check1(dd).Value Then MSFlexGrid1.RemoveItem i                                 Next 
                                Next 
                                Next 
End Sub 
这段代码想加一个条件,如果list1.list(ii)的sz(fhz)=1时才出If ww(dd) = mi(dd) And Form9.Check1(dd).Value Then MSFlexGrid1.RemoveItem i 结果 ,就差这一句if sz(fhz)=1 then  后面不会了,也不知道加到哪个循环里,我试了半天也没整明白 
如list第1行和第3行的sz(fhz)=1,那么就计算这两行的结果,该怎么改 
重点*********** 
想加一个如果list1.list(ii)的sz(fhz)=2,那么mi(0)-mi(11)这12组数,两两互相比较,如mi(0)和mi(1),mi(0)和mi(2)。直到mi(10)和mi(11),然后找到每一次比较两组共有的(相等的)数然后在bb删除,如mi(0)有456,568,789,mi(1)有123,089,568,110,那么mi(0)和mi(1)比较的结果为568相等,如果bb里有568,那么删除,其他的比较都以此类推, 现在有 
list第一行sz(fhz)=1 
list第二行sz(fhz)=2 
list第三行sz(fhz)=1 那么按照上面条件都在bb里删除 请老师帮忙给搞定吧,红红的大苹果等着老师呢,祝老师您新年愉快,新年发大财,买股票买啥啥涨,买彩票买啥啥中

解决方案 »

  1.   

    现在是sz(fhz)=1的,已经基本完成
    现在的结果如果选择复选框Check1(0)和Check1(1),那么即删除Check1(0)又删除Check1(1)的,现在的代码已经通过。
    sz(fhz)=2得换句话说就是
    如果我选择复选框Check1(0)和Check1(1),那么在bb删除Check1(0)和Check1(1),共有的
    如果我选择Check1(0)和Check1(1)和Check1(2),那么将删除Check1(0)和Check1(1)共有的,将删除Check1(0)和Check1(2)共有的,将删除Check1(1)和Check1(2)共有的
    现在急盼老师能帮我把这个写一下,天下所有的祝福都给您
      

  2.   


    '没仔细看,先给你整理一下代码,看起来也清楚一些,你那个写的有点乱,要加在哪里也会让自大糊涂的
    Private Sub Command20_Click()
        Dim a, b, c, d, e, f, g, h, k, l, z, x, v, j, n, m, qe, fhz, ii, iq As Long
        Dim i, jj, mi(11), bb, s, dd, ww(11), ji As Integer
        Dim str, sz() As String
        For dd = 0 To 11
            For ii = 0 To Form9.List1.ListCount - 1
                str = Form9.List1.List(ii)
                sz = Split(str, ",")
                fhz = UBound(sz)            For ji = 1 To fhz - 1
                    If Form9.Check1(dd).Caption = sz(ji) Then Form9.Check1(dd).Value = 1
                Next
                s = sz(0)
                a = s Mod 10
                b = (s \ 10) Mod 10
                c = (s \ 100) Mod 10
                d = a + 5 + 6
                e = b - 7 * 2
                f = d + 8
                g = a + b
                h = a + 2 + 3
                k = b - 1
                l = 5 - 6 - d
                z = 3 - 2 + e
                x = 25 - 16 + 17 - a
                v = a * 5
                j = b * 2
                n = c + 7
                m = 5 + a + b
                qe = 6 * c
                If Form9.Check1(0).Value = 1 Then mi(0) = h
                If Form9.Check1(1).Value = 1 Then mi(1) = k
                If Form9.Check1(2).Value = 1 Then mi(2) = qe
                If Form9.Check1(3).Value = 1 Then mi(3) = l
                If Form9.Check1(4).Value = 1 Then mi(4) = z
                If Form9.Check1(5).Value = 1 Then mi(5) = x
                If Form9.Check1(6).Value = 1 Then mi(6) = v
                If Form9.Check1(7).Value = 1 Then mi(7) = j
                If Form9.Check1(8).Value = 1 Then mi(8) = n
                If Form9.Check1(9).Value = 1 Then mi(9) = m
                If Form9.Check1(10).Value = 1 Then mi(10) = f
                If Form9.Check1(11).Value = 1 Then mi(11) = g            For i = MSFlexGrid1.Rows - 1 To 1 Step -1
                    bb = MSFlexGrid1.TextMatrix(i, 1)
                    a = bb Mod 10
                    b = (bb \ 10) Mod 10
                    c = (bb \ 100) Mod 10
                    d = a + 5 + 6
                    e = b - 7 * 2
                    ww(10) = d + 8
                    ww(11) = a + b
                    ww(0) = a + 2 + 3
                    ww(1) = b - 1
                    ww(3) = 5 - 6 - d
                    ww(4) = 3 - 2 + e
                    ww(5) = 25 - 16 + 17 - a
                    ww(6) = a * 5
                    ww(7) = b * 2
                    ww(8) = c + 7
                    ww(9) = 5 + a + b
                    ww(2) = 6 * c
                    If ww(dd) = mi(dd) And Form9.Check1(dd).Value Then MSFlexGrid1.RemoveItem i            Next
            Next
        Next
    End Sub