For i = MSFlexGrid1.Rows - 1 To 1 Step -1 
dl = MSFlexGrid1.TextMatrix(i, 1) 
sl = "2578" 
rl = "091" 
wl = "346" 
j = 0 
c = 0 
e = 0 For x = 1 To Len(dl) 
For n = 1 To Len(sl) 
If Mid(sl, n, 1) = Mid(dl, x, 1) Then j = j + 1 
Next 
For d = 1 To Len(wl) 
If Mid(wl, d, 1) = Mid(dl, x, 1) Then c = c + 1 
Next 
For k = 1 To Len(rl) 
If Mid(rl, k, 1) = Mid(dl, x, 1) Then e = e + 1 
Next Next 
If Form14.Option1(0) = True Then 
If j = 0 And c = 0 And e = 3 And Form14.Check1(0).Value Then MSFlexGrid1.RemoveItem i 
If j = 0 And c = 2 And e = 1 And Form14.Check1(1).Value Then MSFlexGrid1.RemoveItem i 
If j = 1 And c = 0 And e = 2 And Form14.Check1(2).Value Then MSFlexGrid1.RemoveItem i 
ElseIf Form14.Option1(1) = True Then 
If j <> 0 Or c <> 0 Or e <> 3 And Form14.Check1(0).Value Then MSFlexGrid1.RemoveItem i 
If j <> 0 Or c <> 2 Or e <> 1 And Form14.Check1(1).Value Then MSFlexGrid1.RemoveItem i 
If j <> 1 Or c <> 0 Or e <> 2 And Form14.Check1(2).Value Then MSFlexGrid1.RemoveItem i 
End If 
Next 
如果没有最后这两句 
If j <> 0 Or c <> 2 Or e <> 1 And Form14.Check1(1).Value Then MSFlexGrid1.RemoveItem i 
If j <> 1 Or c <> 0 Or e <> 2 And Form14.Check1(2).Value Then MSFlexGrid1.RemoveItem i 
条件前4个都好使,但是加进这两个后只有 If Form14.Option1(0) = True Then这3个好使,If Form14.Option1(1) 的没有一个好使,显示“网格不包括那一行”该怎么改能让其都好使

解决方案 »

  1.   

    If j <> 0 Or c <> 0 Or e <> 3 And Form14.Check1(0).Value Then MSFlexGrid1.RemoveItem i 
    If j <> 0 Or c <> 2 Or e <> 1 And Form14.Check1(1).Value Then MSFlexGrid1.RemoveItem i 
    If j <> 1 Or c <> 0 Or e <> 2 And Form14.Check1(2).Value Then MSFlexGrid1.RemoveItem i 这三个逻辑肯定有重的,比如,当j <> 0 Or c <> 0 Or e <> 3 And Form14.Check1(0).Value条件返回True时,第I行被删除,如果这时候j <> 0 Or c <> 2 Or e <> 1 And Form14.Check1(1).Value条件或j <> 1 Or c <> 0 Or e <> 2 And Form14.Check1(2).Value条件也同时返回True,后面MSFlexGrid1.RemoveItem i再次被执行,但实际上第I行已经被删除了,所以会出现“网格不包括那一行”的错误,建议你还是好好分析一下这三个逻辑。