我正在使用C#创建一个Excel文件。
最终结果应为:
包含5张的Excel工作簿
使用其他4张纸生成1张纸。
从数据库生成4张
所有公式都应添加到工作表1,以防用户想要手动将数据添加到其他4张
我被困在:
在我创建了所有4张纸后,我正在尝试将公式添加到第1张。
公式逻辑 - 在工作表2的A列中查找工作表1(当前)的A列(所有行逐一)的值,并获取该行的K列值。
我正在尝试将以下VLOOKUP添加到第12行,并将公式复制到所有行。
oRng = worksheet.Range["J12"];
oRng.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-9],'Sheet2'!$A:$K,11,0)),'',VLOOKUP(RC[-9],'Sheet2'!$A:$K,11,0)";
但我收到错误:
HRESULT的异常:0x800A03EC
答案 0 :(得分:1)
我相信你是:
''
代替""
(它不喜欢)$
对FormulaR1C1
中的A1样式引用进行绝对引用(它不喜欢)编辑在您的情况下似乎不太可能,因为您已经说过该公式适用于直接输入,但您可能还有一个区域设置问题,其中excel需要分号列表分隔符并且您使用的是逗号,请参阅my answer here以获得解决方案。 (结束编辑)
所以试试:
oRng.Formula = @"=IF(ISERROR(VLOOKUP(A12,Sheet2!$A:$K,11,0)),"""",VLOOKUP(A12,Sheet2!$A:$K,11,0))";
或
oRng.FormulaR1C1 = @"=IF(ISERROR(VLOOKUP(RC[-9],Sheet2!C1:C11,11,0)),"""",VLOOKUP(RC[-9],Sheet2!C1:C11,11,0))";
(如果您不想在字符串前添加@
前缀,请将字符串中的所有""
更改为\"
脚注
您可以在以后的Excel版本(2007年以后)中将您的公式缩短为:
oRng.Formula = @"=IFERROR(VLOOKUP(A12,Sheet2!$A:$K,11,0),"""")"
oRng.FormulaR1C1 = @"=IFERROR(VLOOKUP(RC[-9],Sheet2!C1:C11,11,0),"""")"
答案 1 :(得分:0)
在Excel公式中放入正确数量的括号:最后缺少一个括号。