设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2064|回复: 2
打印 上一主题 下一主题

帮忙解读下代码

[复制链接]
跳转到指定楼层
1#
发表于 2017-6-6 10:28:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2017-6-6 10:29:22 | 只看该作者
这里第一个 If arr(x, 1) >= A1 And arr(x, 1) <= A2 then 后面又是if  这里的多个if then 应该怎么理解啊
3#
发表于 2017-6-7 00:14:19 | 只看该作者
文件管理 发表于 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行第三列的数据则继续执行下一层语句:
……………………
剩下的如此类推。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 17:42 , Processed in 0.087291 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表