首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >excel公式数组

excel公式数组
EN

Stack Overflow用户
提问于 2009-06-25 10:12:31
回答 9查看 4.6K关注 0票数 1

嗨,我有一个c#程序,它给出了excel2007范围,它的公式数组如下

代码语言:javascript
运行
AI代码解释
复制
   Excel.Worksheet ws_res = (Excel.Worksheet)
                      wb.Worksheets.Add(mis, mis, mis, mis);
   Excel.Range range_res = (Excel.Range)ws_res.get_Range("A1","HM232");
   range_res.FormulaArray = "=(IF((IF(Sheet4!A1:HM232=1,0,"+
                     "IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))=1,0,"+
                     "IF((IF(Sheet4!A1:HM232=1,0,"+
                     "IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232)))=0,1,("+
                     "IF(Sheet4!A1:HM232=1,0,"+
                     "IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232))))))";

我例外地说这个公式是错的.但是如果打开excel-2007并在一个新的工作表(比如sheet5)中选择范围A1:HM232并将上面的公式直接粘贴到公式栏中,然后一起按下Ctrl+Shift+Enter,它就可以完成所有的工作,...你能告诉我怎么用c#做同样的事情吗?

我知道如果我使用公式数组来使用R1C1样式,但如果我使用

代码语言:javascript
运行
AI代码解释
复制
              "=ROUND((IF(Sheet4!A1:HM232=1,0,"+
                 "IF(Sheet4!A1:HM232=0,1,Sheet4!A1:HM232))),0)"

它没有给我任何异常,而且它的执行方式就像我直接从c#和excel中执行Ctrl+Shift+Enter一样

对于上面的两个公式,我确实将A1:HM232改为R1C1:R232C221,同样,较短的公式在c#中可以很好地工作,但较长的公式不能!

EN

回答 9

Stack Overflow用户

发布于 2011-02-11 10:52:48

我还有一个更复杂的问题,那就是我正在为之开发的人使用西班牙语的Excel。

要让公式在非英语版本的Excel中工作,你必须使用一组不同的函数,如FormulaLocal而不是Formula,FormulaR1C1Local intead of FormulaR1C1等。

一个非常简单的例子,比如=RC[-1]+R4C4确实适用于FormulaArray,但是像=SUMA(SI(FC(-2)=1;F8C(-3):F1000C(-3);0))这样包含excel函数名和分号作为参数标记的东西就不行--你会得到一个运行时错误。

我发现的解决办法是做一些类似=SUM(IF(AC9=1,AB$8:AB$1000,0))的事情,即翻译成英语并使用本地公式,而不是R1C1...and。

这很令人惊讶,因为

a)发布的建议是将R1C1用于数组公式和

b)如果使用英文函数名,通常会出现运行时错误。

票数 2
EN

Stack Overflow用户

发布于 2009-06-25 10:20:21

看起来您需要修改单元格引用。从FormulaArray documentation

如果使用此属性输入数组公式,则公式必须使用R1C1引用样式,而不是A1引用样式。

有关R1C1引用样式的更多信息:

票数 1
EN

Stack Overflow用户

发布于 2009-06-25 10:25:02

我认为您需要指定公式的第一个单元格,即使您将公式应用于整个选定内容:

代码语言:javascript
运行
AI代码解释
复制
range_res("A1").FormulaArray = "=(IF((IF(Sheet4!A1:HM232=1,0,"+ etc
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1045408

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文