为什么我在使用FormulaArray的时候总是收到COMexception

try { sheet1.get_Range("M34").FormulaArray = "=SUM(IF(Sheet2!D6:D122=M31,IF(Sheet2!P6:P122>0,Sheet2!I6:I122/SUMIFS(Sheet2!I:I,Sheet2!C:C,Sheet2!C6:C122,Sheet2!D:D,Sheet2!D6:D122)*ROUNDUP(SUMIFS(Sheet2!I:I,Sheet2!C:C,Sheet2!C6:C122,Sheet2!D:D,Sheet2!D6:D122)/Sheet2!Q3,0),0),0))"; } catch (COMException ex) { MessageBox.Show(ex.Message); } 

任何人都知道为什么上面的代码抛出COMexception。 公式工作正常,如果我进入Excel并按Ctrl + Shift + Enter,但是当我的程序写入Excel,它会抛出一个exception。 我在我的程序中的其他地方使用Range.FormulaArray,它工作正常。 也许有人可以指出这个问题,因为我疯了,似乎其他人有同样的问题,但没有解决scheme在线。

我试过这个工作,它的工作。

 try { sheet1.get_Range("M33").FormulaArray = "=SUMIFS(Sheet2!I:I,Sheet2!C:C,Sheet2!C6:C122,Sheet2!D:D,Sheet2!D6:D122)"; sheet1.get_Range("M34").FormulaArray = "=SUM(IF(Sheet2!D6:D122=M31,IF(Sheet2!P6:P122>0,Sheet2!I6:I122/Sheet1!M33*ROUNDUP(Sheet1!M33/Sheet2!Q3,0),0),0))"; } catch (COMException ex) { MessageBox.Show(ex.ToString); }