For dd = 0 To 11
For ii = 0 To Form9.List1.ListCount - 1
str = Form9.List1.List(ii)
sz = Split(str, ",")
st = sz(0)
Form9.List1.ListIndex = ii
si(0) = st Mod 10
si(1) = (st \ 10) Mod 10
si(2) = (st \ 100) Mod 10
si(3) = IIf(si(0) >= si(1), IIf(si(0) >= si(2), si(0), si(2)), IIf(si(1) >= si(2), si(1), si(2)))
si(4) = IIf(si(0) <= si(1), IIf(si(0) <= si(2), si(0), si(2)), IIf(si(1) <= si(2), si(1), si(2)))
si(5) = (si(0) Mod 2) + (si(1) Mod 2) + (si(2) Mod 2)
si(6) = IIf(si(0) >= 5, 1, 0) + IIf(si(1) >= 5, 1, 0) + IIf(si(2) >= 5, 1, 0)
si(7) = fq(st)
si(8) = fw(st)
si(9) = si(0) + si(1) + si(2)
si(10) = si(3) - si(4)
si(11) = si(9) - si(3) - si(4)
si(12) = si(3) + si(11) - si(4)
si(13) = si(11) + si(4)
si(14) = fi(st)
si(15) = fr(st)
si(16) = fq(st) - (si(9) - fq(st))
If Form9.Check1(0).Value = 1 Then mi(0) = si(7)
If Form9.Check1(1).Value = 1 Then mi(1) = si(8)
If Form9.Check1(2).Value = 1 Then mi(2) = si(16)
If Form9.Check1(3).Value = 1 Then mi(3) = si(9)
If Form9.Check1(4).Value = 1 Then mi(4) = si(10)
If Form9.Check1(5).Value = 1 Then mi(5) = si(11)
If Form9.Check1(6).Value = 1 Then mi(6) = si(12)
If Form9.Check1(7).Value = 1 Then mi(7) = si(13)
If Form9.Check1(8).Value = 1 Then mi(8) = si(14)
If Form9.Check1(9).Value = 1 Then mi(9) = si(15)
If Form9.Check1(10).Value = 1 Then mi(10) = si(5)
If Form9.Check1(11).Value = 1 Then mi(11) = si(6)
For i = MSFlexGrid1.Rows - 1 To 1 Step -1
bb = MSFlexGrid1.TextMatrix(i, 1)
si(0) = bb Mod 10
si(1) = (bb \ 10) Mod 10
si(2) = (bb \ 100) Mod 10
si(3) = IIf(si(0) >= si(1), IIf(si(0) >= si(2), si(0), si(2)), IIf(si(1) >= si(2), si(1), si(2)))
si(4) = IIf(si(0) <= si(1), IIf(si(0) <= si(2), si(0), si(2)), IIf(si(1) <= si(2), si(1), si(2)))
ww(10) = (si(0) Mod 2) + (si(1) Mod 2) + (si(2) Mod 2)
ww(11) = IIf(si(0) >= 5, 1, 0) + IIf(si(1) >= 5, 1, 0) + IIf(si(2) >= 5, 1, 0)
ww(0) = fq(bb)
ww(1) = fw(bb)
ww(3) = si(0) + si(1) + si(2)
ww(4) = si(3) - si(4)
ww(5) = ww(3) - si(3) - si(4)
ww(6) = si(3) + ww(5) - si(4)
ww(7) = ww(5) + si(4)
ww(8) = fi(bb)
ww(9) = fr(bb)
ww(2) = fq(bb) - (ww(3) - fq(bb))
If Form9.Option1(0) = True And Form9.Option2(0) = True Then '删除
If ww(dd) = mi(dd) And Form9.Check1(dd).Value = 1 Then MSFlexGrid1.RemoveItem i
ElseIf Form9.Option1(0) = True And Form9.Option2(1) = True Then '保留
If ww(dd) <> mi(dd) And Form9.Check1(dd).Value Then MSFlexGrid1.RemoveItem i End If
If Form9.Option1(1) = True Then '删除
If Form9.Option2(0) = True Then
If ww(dd) = mi(dd) And Form9.Check1(dd).Value Then
Mark(nv) = bb
ReDim Preserve Mark(nv + 1)
nv = nv + 1
End If
End If
End If
If Form9.Option1(1) = True Then '保留
If Form9.Option2(1) = True Then
If ww(dd) <> mi(dd) And Form9.Check1(dd).Value Then
Mark(nv) = bb
ReDim Preserve Mark(nv + 1)
nv = nv + 1
End If
End If
End If
Next
Next
Next
For myi = LBound(Mark) To UBound(Mark)'通用
nx = 0
For myj = LBound(Mark) To UBound(Mark)
If Mark(myi) = Mark(myj) Then nx = nx + 1
Next myj
If nx > 1 Then
Debug.Print Mark(myi)
For myk = MSFlexGrid1.Rows - 1 To 1 Step -1 If Mark(myi) = MSFlexGrid1.TextMatrix(myk, 1) Then MSFlexGrid1.RemoveItem myk
Next myk
End If
Next
End If
两个删除都是正确的,老师您看看上面还有两个保留的,拿第一个举例
ElseIf Form9.Option1(0) = True And Form9.Option2(1) = True Then '保留
If ww(dd) <> mi(dd) And Form9.Check1(dd).Value Then MSFlexGrid1.RemoveItem i
这个保留,最后的结果是既符合又符合又符合。。这样就不对了,应该是符合+符合+符合+也就是递增
我现在要的就是,效果就是上面删除的那些保留下来,和删除的正好相反,如上面删除了58个数,那么保留就要保留这58个数
如果我添加一个list2
If ww(dd) = mi(dd) And Form9.Check1(dd).Value Then List2.AddItem bb
那么这个list2里的结果是正确的,只不过有重复的,如果再用list2和MSFlexGrid1比较这样很麻烦
这两个保留该怎么改比较简单
For ii = 0 To Form9.List1.ListCount - 1
str = Form9.List1.List(ii)
sz = Split(str, ",")
st = sz(0)
Form9.List1.ListIndex = ii
si(0) = st Mod 10
si(1) = (st \ 10) Mod 10
si(2) = (st \ 100) Mod 10
si(3) = IIf(si(0) >= si(1), IIf(si(0) >= si(2), si(0), si(2)), IIf(si(1) >= si(2), si(1), si(2)))
si(4) = IIf(si(0) <= si(1), IIf(si(0) <= si(2), si(0), si(2)), IIf(si(1) <= si(2), si(1), si(2)))
si(5) = (si(0) Mod 2) + (si(1) Mod 2) + (si(2) Mod 2)
si(6) = IIf(si(0) >= 5, 1, 0) + IIf(si(1) >= 5, 1, 0) + IIf(si(2) >= 5, 1, 0)
si(7) = fq(st)
si(8) = fw(st)
si(9) = si(0) + si(1) + si(2)
si(10) = si(3) - si(4)
si(11) = si(9) - si(3) - si(4)
si(12) = si(3) + si(11) - si(4)
si(13) = si(11) + si(4)
si(14) = fi(st)
si(15) = fr(st)
si(16) = fq(st) - (si(9) - fq(st))
If Form9.Check1(0).Value = 1 Then mi(0) = si(7)
If Form9.Check1(1).Value = 1 Then mi(1) = si(8)
If Form9.Check1(2).Value = 1 Then mi(2) = si(16)
If Form9.Check1(3).Value = 1 Then mi(3) = si(9)
If Form9.Check1(4).Value = 1 Then mi(4) = si(10)
If Form9.Check1(5).Value = 1 Then mi(5) = si(11)
If Form9.Check1(6).Value = 1 Then mi(6) = si(12)
If Form9.Check1(7).Value = 1 Then mi(7) = si(13)
If Form9.Check1(8).Value = 1 Then mi(8) = si(14)
If Form9.Check1(9).Value = 1 Then mi(9) = si(15)
If Form9.Check1(10).Value = 1 Then mi(10) = si(5)
If Form9.Check1(11).Value = 1 Then mi(11) = si(6)
For i = MSFlexGrid1.Rows - 1 To 1 Step -1
bb = MSFlexGrid1.TextMatrix(i, 1)
si(0) = bb Mod 10
si(1) = (bb \ 10) Mod 10
si(2) = (bb \ 100) Mod 10
si(3) = IIf(si(0) >= si(1), IIf(si(0) >= si(2), si(0), si(2)), IIf(si(1) >= si(2), si(1), si(2)))
si(4) = IIf(si(0) <= si(1), IIf(si(0) <= si(2), si(0), si(2)), IIf(si(1) <= si(2), si(1), si(2)))
ww(10) = (si(0) Mod 2) + (si(1) Mod 2) + (si(2) Mod 2)
ww(11) = IIf(si(0) >= 5, 1, 0) + IIf(si(1) >= 5, 1, 0) + IIf(si(2) >= 5, 1, 0)
ww(0) = fq(bb)
ww(1) = fw(bb)
ww(3) = si(0) + si(1) + si(2)
ww(4) = si(3) - si(4)
ww(5) = ww(3) - si(3) - si(4)
ww(6) = si(3) + ww(5) - si(4)
ww(7) = ww(5) + si(4)
ww(8) = fi(bb)
ww(9) = fr(bb)
ww(2) = fq(bb) - (ww(3) - fq(bb))
If Form9.Option1(0) = True And Form9.Option2(0) = True Then '删除
If ww(dd) = mi(dd) And Form9.Check1(dd).Value = 1 Then MSFlexGrid1.RemoveItem i
ElseIf Form9.Option1(0) = True And Form9.Option2(1) = True Then '保留
If ww(dd) <> mi(dd) And Form9.Check1(dd).Value Then MSFlexGrid1.RemoveItem i End If
If Form9.Option1(1) = True Then '删除
If Form9.Option2(0) = True Then
If ww(dd) = mi(dd) And Form9.Check1(dd).Value Then
Mark(nv) = bb
ReDim Preserve Mark(nv + 1)
nv = nv + 1
End If
End If
End If
If Form9.Option1(1) = True Then '保留
If Form9.Option2(1) = True Then
If ww(dd) <> mi(dd) And Form9.Check1(dd).Value Then
Mark(nv) = bb
ReDim Preserve Mark(nv + 1)
nv = nv + 1
End If
End If
End If
Next
Next
Next
For myi = LBound(Mark) To UBound(Mark)'通用
nx = 0
For myj = LBound(Mark) To UBound(Mark)
If Mark(myi) = Mark(myj) Then nx = nx + 1
Next myj
If nx > 1 Then
Debug.Print Mark(myi)
For myk = MSFlexGrid1.Rows - 1 To 1 Step -1 If Mark(myi) = MSFlexGrid1.TextMatrix(myk, 1) Then MSFlexGrid1.RemoveItem myk
Next myk
End If
Next
End If
两个删除都是正确的,老师您看看上面还有两个保留的,拿第一个举例
ElseIf Form9.Option1(0) = True And Form9.Option2(1) = True Then '保留
If ww(dd) <> mi(dd) And Form9.Check1(dd).Value Then MSFlexGrid1.RemoveItem i
这个保留,最后的结果是既符合又符合又符合。。这样就不对了,应该是符合+符合+符合+也就是递增
我现在要的就是,效果就是上面删除的那些保留下来,和删除的正好相反,如上面删除了58个数,那么保留就要保留这58个数
如果我添加一个list2
If ww(dd) = mi(dd) And Form9.Check1(dd).Value Then List2.AddItem bb
那么这个list2里的结果是正确的,只不过有重复的,如果再用list2和MSFlexGrid1比较这样很麻烦
这两个保留该怎么改比较简单
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货