Office中国论坛/Access中国论坛

标题: 问题vba+sumproduct [打印本页]

作者: 欢欢    时间: 2008-8-22 13:45
标题: 问题vba+sumproduct
SRmaxrow=41  H=75
ActiveSheet.Cells(7, H + 1).Value = Application.SumProduct((Right(Range(Cells(10, H + 3), Cells(SRmaxrow, H + 3)), 2) = "钢化"), Range(Cells(10, H), Cells(SRmaxrow, H)), Range(Cells(10, H + 1), Cells(SRmaxrow, H + 1)), Range(Cells(10, H + 2), Cells(SRmaxrow, H + 2)))                   为什么这样说类型不匹配

少了红色部分就可以得出结果
ActiveSheet.Cells(7, H + 1).Value = Application.SumProduct((Range(Cells(10, H), Cells(SRmaxrow, H)), Range(Cells(10, H + 1), Cells(SRmaxrow, H + 1)), Range(Cells(10, H + 2), Cells(SRmaxrow, H + 2)))  

该怎么办??
作者: liwen    时间: 2008-8-22 15:34
RIGHT()函数作用于文本
SumProduct()
去掉RIght函数后,后面几个不用“,”号而改用*的格式。
作者: 欢欢    时间: 2008-8-22 16:20
我要right呢?
不要right  也不用改“,”,公式本身成立!!

[ 本帖最后由 欢欢 于 2008-8-22 16:28 编辑 ]
作者: liwen    时间: 2008-8-25 12:04
ActiveSheet.Cells(7, H + 1).FormulaLocal = "=SumProduct((right((" & Cells(10, H + 3).Address & ":" & Cells(SRmaxrow, H + 3).Address & "),2) =""钢化"")* (" & Cells(10, H).Address & ":" & Cells(SRmaxrow, H).Address & ")* (" & Cells(10, H + 1).Address & ":" & Cells(SRmaxrow, H + 1).Address & ")* (" & Cells(10, H + 2).Address & ":" & Cells(SRmaxrow, H + 2).Address & "))"
ActiveSheet.Cells(7, H + 1).Value = ActiveSheet.Cells(7, H + 1).Value

可能VBA中跟单元格中的解释不一样吧(在ACCESS中执行查询和SQL语句也会出现这样的差别),不过,使用”=“号之后,我单元格公式中不用“*”代替“,”结果显示为0




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