设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

请教:能否把阵列公式改为编程

[复制链接]
跳转到指定楼层
1#
发表于 2006-9-23 00:54:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请教各位大侠,能否把以下阵列公式改为编程:

{=SUM(IF(MONTH(入库登记!$C$2C$10)=MONTH(汇总!$B$2),IF(入库登记!$D$2D$10=汇总!A4,入库登记!$E$2E$10)))}

thanks

[此贴子已经被作者于2006-9-22 17:01:29编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
7#
 楼主| 发表于 2006-9-25 16:08:00 | 只看该作者
十分感谢鬼主提供了两种方法并进行了比较,也十分感谢这个学习交流的平台,学以致用是最好的学习方法,在以后的学习过程中我也会以自己学到的东西来帮助别人.
6#
发表于 2006-9-25 03:19:00 | 只看该作者
双重循环效率会差点,方法如下:

Dim sumValue
Dim cel, cel2
    For Each cel In Range("A4", Range("A4").End(xlDown))
        sumValue = 0
        For Each cel2 In Sheets("入库登记").Range("D1", Sheets("入库登记").Range("D1").End(xlDown))
            If cel2.Value = cel.Value Then
                If Month(cel2.Offset(0, -1).Value) = Month(Range("b2")) Then
                    sumValue = cel2.Offset(0, 1).Value + sumValue
                End If
            End If
        Next
        cel.Offset(0, 1).Value = sumValue
    Next

另外提供不需双重循环的方法,程序比较简短:

i = 0
    For Each cel In Range("A4", Range("A4").End(xlDown))
        cel.Offset(0, 1).Value = Evaluate("=SUM((MONTH(入库登记!$C$2C$10)=MONTH(汇总!$B$2))*(入库登记!$D$2D$10=汇总!A" & (4 + i) & ")*(入库登记!$E$2E$10))")
        i = i + 1
    Next
5#
 楼主| 发表于 2006-9-24 21:37:00 | 只看该作者
鬼主辛苦了,我现在想知道的是不用插入公式,而是用你说的双重循环要怎样才能实现,希望鬼主不要嫌我麻烦,再次感谢鬼主.

[此贴子已经被作者于2006-9-24 16:48:27编辑过]

4#
发表于 2006-9-24 20:33:00 | 只看该作者
看你的表格,好像你只是想把公式自动插进入而已,那就用下面的代码吧

i = 0
    For Each CEL In Range("A4", Range("A4").End(xlDown))
        CEL.Offset(0, 1).FormulaArray = "=SUM((MONTH(入库登记!$C$2C$10)=MONTH(汇总!$B$2))*(入库登记!$D$2D$10=汇总!A" & (4 + i) & ")*(入库登记!$E$2E$10))"
        i = i + 1
    Next
3#
 楼主| 发表于 2006-9-24 17:58:00 | 只看该作者



谢谢鬼主的提示,但现在我对excel for VBA不熟悉,昨天试了一天,运行后无任何反应,

请鬼主及各位大侠再帮我看看宏,该怎么修改.

thanks

[此贴子已经被作者于2006-9-24 9:59:17编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
发表于 2006-9-23 05:34:00 | 只看该作者
用双重循环
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-25 12:26 , Processed in 0.092368 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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