这是我得到的例外:
System.Runtime.InteropServices.COMException(0x800A03EC):来自HRESULT的异常:0x800A03EC
at System.RuntimeType.ForwardCallToInvokeMember(String memberName,BindingFlags flags,Object target,Int32 [] aWrapperTypes,MessageData&msgData)
at Microsoft.Office.Interop.Excel.Range.set_Formula(Object value)
我的代码看起来像这样:
Range rng = activeWorksheet.get_Range("A1");
rng.Formula = "=SUM(A4*C4;A5*C5;A6*C6;A7*C7)/SUM(A4:A7)";
Run Code Online (Sandbox Code Playgroud)
每当我运行此代码时,我都会得到前面提到的异常.但是,当我运行此代码时:
Range rng = activeWorksheet.get_Range("A1");
rng.Formula = "=SUM(A4:A7)/4"
Run Code Online (Sandbox Code Playgroud)
这非常有效.没有例外.
我检查了两个公式,它们在我的Excel中完美运行.我试过设置:
Application.Calculation = XlCalculation.xlCalculationAutomatic;
Run Code Online (Sandbox Code Playgroud)
这根本没有帮助,我一直在谷歌搜索这个解决方案,并没有找到任何有用的东西.有没有人知道可能有什么问题?
小智 6
Excel的COM界面说美国语,因此您需要在公式字符串中使用US列表分隔符.用逗号替换你的分号,你应该没问题.
Range rng = activeWorksheet.get_Range("A1");
rng.FormulaArray = "=SUM(A4*C4,A5*C5,A6*C6,A7*C7)/SUM(A4:A7)";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3048 次 |
| 最近记录: |