Sys*_*ect 5 vb.net excel interop excel-formula excel-2010
项目中的其他人的代码,我正在努力修复.
listO.Range(i, j).FormulaR1C1 = FormulaMatrix(i, j)
哪里FormulaMatrix(i, j)总是一个String价值.无论随机/测试值是什么,我尝试使用,成功分配,除非它是一个公式,例如.
=IF(LENGTH([@Units])>0;[@SalesAmount]-[@DiscountAmount]0)
如果我删除=公式开头的符号,它会被正确分配,但是它没用,因为它不是公式.
@Units,@SalesAmount,@DiscountAmount是列引用/名称.
因此,在分配公式时,我会得到一个例外HRESULT: 0x800A03EC.我抬头看了这个答案,以便得到解释并遵循那里的一些指示.我确定我的问题如下:问题是由于在单元格中输入的函数而发生的,并且它正在尝试更新另一个单元格.
检查了这篇文章.我尝试了完全不同(比如只放置公式=,然后重新运行并放置等号),但同样的问题.
我对如何处理这个问题一无所知.
该错误可能分别来自您当前的数据和工作表的布局。listO.Range(i, j).FormulaR1C1我建议您在分配公式之前检查一下里面的内容。
我遇到过这样的情况,范围内已经有错误的数据,然后奇怪的是,我不知道为什么,我无法分配新的公式。
如果是这种情况 - 尝试清除范围的值,然后分配公式:
listO.Range(i, j).FormulaR1C1 = ""
listO.Range(i, j).FormulaR1C1 = FormulaMatrix(i, j)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1079 次 |
| 最近记录: |