Office中国论坛/Access中国论坛

标题: 帮忙解读下代码 [打印本页]

作者: 文件管理    时间: 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
文件管理 发表于 2017-6-6 10:29
这里第一个 If arr(x, 1) >= A1 And arr(x, 1)

这是一个含有多层嵌套的循环语句块。
If arr(x, 1) >= A1 And arr(x, 1) <= A2 Then
……表示数组的第x行第一列的数字在A1与A2之间则执行下一层语句:
If D1.Exists(arr(x, 3)) Then
……表示如果字典D1里,如果含有第x行第三列的数据则继续执行下一层语句:
……………………
剩下的如此类推。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3