标题: 帮忙解读下代码 [打印本页] 作者: 文件管理 时间: 2017-6-6 10:28 标题: 帮忙解读下代码 k1 = 3
arr = .Range("A2" & .Range("A65536").End(xlUp).Row)
For x = 1 To UBound(arr)
If arr(x, 1) >= A1 And arr(x, 1) <= A2 Then
If D1.Exists(arr(x, 3)) Then
n = D1(arr(x, 3))
If D2.Exists(arr(x, 2)) Then
m = D2(arr(x, 2))
arr1(m, n) = arr1(m, n) + arr(x, 4)
GoTo AA
Else
k = k + 1
D2(arr(x, 2)) = k
arr1(k, 1) = arr(x, 2)
arr1(k, n) = arr(x, 4)
GoTo AA
End If
Else
k1 = k1 + 1
D1(arr(x, 3)) = k1
arr2(1, k1) = arr(x, 3)
End If
If D2.Exists(arr(x, 2)) Then
m = D2(arr(x, 2))
arr1(m, n) = arr1(m, n) + arr(x, 4)
Else
k = k + 1
D2(arr(x, 2)) = k
arr1(k, 1) = arr(x, 2)
arr1(k, k1 - 1) = arr(x, 4)
End If
End If作者: 文件管理 时间: 2017-6-6 10:29
这里第一个 If arr(x, 1) >= A1 And arr(x, 1) <= A2 then 后面又是if 这里的多个if then 应该怎么理解啊作者: roych 时间: 2017-6-7 00:14
这是一个含有多层嵌套的循环语句块。
If arr(x, 1) >= A1 And arr(x, 1) <= A2 Then
……表示数组的第x行第一列的数字在A1与A2之间则执行下一层语句:
If D1.Exists(arr(x, 3)) Then
……表示如果字典D1里,如果含有第x行第三列的数据则继续执行下一层语句:
……………………
剩下的如此类推。