这种数组需要三重循环嵌套来解决吗?
数据源
项目 x1 : y1 : x2 : y2
第1点: 0 : 2 : 0 : 0
第2点: 1 : 2 : 0 : 2
第3点: 1 : 0 : 1 : 2
第4点: 0 : 0 : 1 : 0
数组整理后结果如下
项目 x1 : y1 : x2 : y2
第1点: 0 : 2 : 0 : 0
第2点: 0 : 0 : 1 : 0
第3点: 1 : 0 : 1 : 2
第4点: 1 : 2 : 0 : 2
现在解决办法是三重循环嵌套
Sub llsssss()
Dim aa(3) As Variant
aa(0) = Array(0, 2, 0, 0)
aa(1) = Array(1, 2, 0, 2)
aa(2) = Array(1, 0, 1, 2)
aa(3) = Array(0, 0, 1, 0)
Dim bb(3, 3)
xx = aa(0)(2): yy = aa(0)(3)
For jj = 0 To 3
bb(0, jj) = aa(0)(jj)
Next jj
For kk = 1 To 3
For ii = 0 To 3
If xx = aa(ii)(0) And yy = aa(ii)(1) Then
For jj = 0 To 3
bb(kk, jj) = aa(ii)(jj)
Next jj
xx = aa(ii)(2): yy = aa(ii)(3)
Exit For
End If
Next ii
Next kk
For ii = 0 To 3
tt = " bb(" & ii & ")=array("
For jj = 0 To 3
tt = tt & bb(ii, jj) & ","
Next jj
tt = Left(tt, Len(tt) - 1)
tt = tt & ")"
Debug.Print tt
Next ii
End Sub
结果为
bb(0)=array(0,2,0,0)
bb(1)=array(0,0,1,0)
bb(2)=array(1,0,1,2)
bb(3)=array(1,2,0,2)
现在存在的问题是采用了三重嵌套循环,效率太低.
还有一个问题是数组
aa(0) = Array(0, 2, 0, 0)
aa(1) = Array(1, 2, 0, 2)
aa(2) = Array(1, 0, 1, 2)
aa(3) = Array(0, 0, 1, 0)
红色部分经常会有下面数组组合存在.
aa(1) = Array(0, 2, 1, 2)
上面的程序肯定有问题,效率太低.