For ii = 0 To Form14.List1.ListCount - 1
sta = Form14.List1.List(ii)
Form14.List1.ListIndex = ii
arr = Split(sta, ",")
fhz = UBound(arr)
For jj = 0 To fhz - 1
stt(0) = Mid(arr(jj), 1, 1)
stt(1) = Mid(arr(jj), 3, 1)
stt(2) = Mid(arr(jj), 5, 1)
For i = MSFlexGrid1.Rows - 1 To 1 Step -1
dl = MSFlexGrid1.TextMatrix(i, 1)
sl = "0689"
rl = "127"
wl = "345"
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 = Val(stt(0)) And c = Val(stt(1)) And e = Val(stt(2)) And Form14.Check1(0).Value Then MSFlexGrid1.RemoveItem i
End If
Next
Next
Next为什么这段代码只能读取list里的第一行,如现在list里有好多行,他还是只辨别第一行的数据,该怎么改才可以让他读取list里所有的行呢
是否
stt(0) = Mid(arr(jj), 1, 1)
stt(1) = Mid(arr(jj), 3, 1)
stt(2) = Mid(arr(jj), 5, 1)
这个地方少了一个循环写法
取值就是List1.List(ii)里面所有行的值,
是你后面的代码有问题
其中:arr = Split(sta, ",")的取值,如果sta 不包含"," 为零。所以下面的循环不能进入你可以在sta = Form14.List1.List(ii)
代码后面增加: msgbox sta 检查List1的赋值情况