以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] Excell 单元格数组公式设置 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105881) |
-- 作者:jweishan -- 发布时间:2017/8/28 16:17:00 -- [求助] Excell 单元格数组公式设置 错误提示: 不能设置类 Range 的 FormulaArray 属性 Rg = Ws.Range("G3") Rg.FormulaArray = _ "=IF(RC[-2]=""部门计划"",(""C_"" & VLOOKUP(RC[-3],部门范围,2) & RIGHT(TEXT(RC[-6],""0000""),2) & RIGHT(TEXT(RC[-5],""00""),2) & RIGHT(TEXT(RC[-4],""00""),2) & ""_1""),If(RC[-2]=""临时安排"",(""C_"" & VLOOKUP(RC[-1],类别范围,2) & RIGHT(TEXT(RC[-6],""0000""),2) & RIGHT(TEXT(RC[-5],""00""),2) & RIGHT(TEXT(RC[-4],""00""),2) & ""_1""),If(RC[-2] = ""上月顺延"",INDEX(任务编号,SMALL(If(未完成任务处置=""顺延" & _ "完成任务处置)-2,""""),COUNTIF(R3C5:RC[-2],""上月顺延""))),"""")))" Rg.AutoFill (Destination:= Ws.Range("G3:G17"), Type:= MsExcel.XlAutoFillType.xlFillDefault) 这个太折腾人了,用代码来设置报错;在模板文件中设好也报错,会自动删除公式。而这个公式在表中测试是能计算出正确结果的。 这个坎还绕不过去了。查了网上有类似情形,但没有解决方法,请老师指点指点!
|
-- 作者:有点甜 -- 发布时间:2017/8/28 16:33:00 -- 为什么要用数组公式?直接设置公式不行?
Rg.Formula = "xxxxx" |
-- 作者:有点甜 -- 发布时间:2017/8/28 16:37:00 -- 如果公式不是必须的,为什么不直接计算以后,直接给excel赋值? |
-- 作者:jweishan -- 发布时间:2017/8/28 16:40:00 -- @甜版主 不行的。 ...... INDEX(任务编号,SMALL(If(未完成任务处置=""顺延" & “完成任务处置)-2,""""),COUNTIF(R3C5:RC[-2],""上月顺延""))),"""") ....... 这段计算必须得是数组公式才算得出来。 |
-- 作者:有点甜 -- 发布时间:2017/8/28 16:51:00 -- 你确定你公式没有写错?在命令窗口执行下面的代码,拷贝生成的公式到excel去,测试是否有错误。
output.show("=IF(RC[-2]=""部门计划"",(""C_"" & VLOOKUP(RC[-3],部门范围,2) & RIGHT(TEXT(RC[-6],""0000""),2) & RIGHT(TEXT(RC[-5],""00""),2) & RIGHT(TEXT(RC[-4],""00""),2) & ""_1""),If(RC[-2]=""临时安排"",(""C_"" & VLOOKUP(RC[-1],类别范围,2) & RIGHT(TEXT(RC[-6],""0000""),2) & RIGHT(TEXT(RC[-5],""00""),2) & RIGHT(TEXT(RC[-4],""00""),2) & ""_1""),If(RC[-2] = ""上月顺延"",INDEX(任务编号,SMALL(If(未完成任务处置=""顺延" & _ "完成任务处置)-2,""""),COUNTIF(R3C5:RC[-2],""上月顺延""))),"""")))")
|