vb高手们看看这段代码错在哪?

来源:百度知道 编辑:UC知道 时间:2024/05/29 20:56:46
列表框项目格式为00 00 00 00 00 00 00,还有一个数组,我要删除列表框项目中包含数组中连续三个数的项目,如果包含数组中第一元素,第二元素,第四元素那就不在删除的范围之内了(关键是连续的!),我试着写了下面的代码可是运行时毫无反应,高手们看看是什么问题,谢谢!
Private Sub Command1_Click()
Dim a As Integer, b As Integer, i As Integer ,noy(1 To 7) As String
noy(1) = 01: noy(2) = 02: noy(3) = 03: noy(4) = 04: noy(5) = 05: noy(6) = 06: noy(7) = 07
For i = List1.ListCount - 1 To 0 Step -1
For a = 1 To 13 Step 3
For b = 1 To 5
If Val(Mid(List1.List(i), a, 2)) = Val(noy(b)) And Val(Mid(List1.List(i), a+3, 2)) = _
Val(noy(b + 1)) And Val(Mid(List1.List(i), a+6, 2)) = Val(noy(b + 2)) Then List1.RemoveItem i
Next b, a, i
End If
End Sub

我看了下你的程序,语句上除了一个地方有问题外其他都没有问题
最后的End If是多出来的,要删除

我测试程序运行的结果,跟我看你的代码所理解的东西一样,没有任何毛病
不知道你所谓的毫无反应是什么意思,问题应该出在你测试的项目列表上.
我测试的项目为"63 01 02 03 56 12 75","63 26 04 05 06 12 75",都可以被删除

你的代码只能在项目中"任意""连续""3个数"与数组中任意连续3个数相同时才删除.注意这个连续不包括第6,7,1之间的连续
比如说02 03 49 39 23 25 01,其中第7,1,2有一个连续,但是你的程序无法判断并删除.除了这个不行,其他的都没问题.

Step 3 -> Step by 3

那个Step 3是否应该去掉?