2013-05-10 124 views
0

我正在使用C#創建Excel文件。從HRESULT異常:0x800A03EC在創建工作簿時嘗試添加公式r1c1

最終的結果應該是:

  1. Excel工作簿與5張

  2. 1片使用其它4張生成。

  3. 4片從數據庫中生成

  4. 所有的公式應該被添加到片材1,以防萬一用戶想要手動添加數據到其他4張

我停留在:

後,我創建的所有4張,我想配方添加到表1.

公式邏輯 - 尋找VALU在表格2的列A中的表格1(當前)的列A(所有行一個接一個)的列e中獲得該行的列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)"; 

但我得到的錯誤:

Exception from HRESULT: 0x800A03EC

+0

我沒有保存的excel,直到這一點。 – user1224954 2013-05-10 13:29:05

+0

建議的答案是否解決了您的問題,或者您是否以其他方式解決了問題? – 2013-06-13 17:14:37

回答

1

我相信你是:

  • 使用''代替""(它不喜歡)
  • 使用$爲混合A1和R1C1樣式(它不喜歡)
  • 關於A1風格參考的絕對參考文獻FormulaR1C1(它不喜歡)

編輯您的情況似乎不太可能,因爲您已經說過該公式適用於直接輸入,但是您也可能有一個區域設置問題,其中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),"""")" 
0

放在括號正確數量的您的Excel的公式:你缺少一個結尾。

+0

謝謝佈德!我認爲這是我痛苦的結局。但仍然沒有運氣。仍然得到相同的錯誤。 – user1224954 2013-05-10 13:28:24

相關問題