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); }
위의 코드가 COM 예외를 throw하는 이유는 누구나 알 수 있습니다. 수식은 Ctrl + Shift + Enter 키를 눌러 Excel에 입력하면 작동하지만 예외를 throw하는 프로그램 작성시 Excel이 작동합니다. 내 프로그램의 다른 곳에 Range.FormulaArray를 사용했는데 정상적으로 작동했습니다. 아마 누군가 미친 듯이 문제를 지적 할 수 있습니다. 다른 사람들도 똑같은 문제를 가지고 있지만 온라인에서는 해결책이없는 것 같습니다.FormulaArray를 사용할 때 COM 예외가 계속 발생하는 이유
참조하시기 바랍니다 "[제목에서 스택 오버플로를 허용하지 않는 태그 (http://meta.stackexchange.com/a/130208)는" –
당신은 표현을 간소화 시도? –
잘 여러 셀을 사용하여 알아낼 수 있지만 깨끗한 프레젠테이션을 위해 하나의 셀에서 계산을 원했지만 단순화 할 수 있으면 좋겠지 만 장면 뒤에서 수학을 수행하지 않으면 내가 할 수 있다고 생각하지 않습니다. Excel에서 계산, 내가 태그를 삭제하거나 제목을 변경해야합니까? – jitsuin