0

C# を使用して Excel ファイルを作成しています。

最終結果は次のようになります。

  1. 5 シートの Excel ワークブック

  2. 1 シートは他の 4 シートを使用して生成されます。

  3. データベースから4枚生成

  4. ユーザーが他の 4 つのシートに手動でデータを追加したい場合に備えて、すべての数式をシート 1 に追加する必要があります。

私は立ち往生しています:

4 つのシートすべてを作成した後、数式をシート 1 に追加しようとしています。

数式ロジック - シート 2 の列 A でシート 1 (現在) の列 A (すべての行を 1 行ずつ) の値を探し、その行の列 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

4

2 に答える 2

1

私はあなたがいると信じています:

  • A1 と R1C1 スタイルの混合 (これは気に入らない)
  • ''の代わりに使用する""(これは気に入らない)
  • $A1スタイル参照の絶対参照に使用しますFormulaR1C1(これは好きではありません)

数式が直接入力で機能すると言ったので、編集する可能性は低いようですが、Excelがセミコロンリストセパレーターを必要とし、コンマを使用しているロケールの問題がある可能性もあります。解決策については、こちらの回答を参照してください。(編集終了)

だから試してください:

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),"""")"
于 2013-05-23T18:53:38.523 に答える
0

Excel の式に正しい数の括弧を入れてください。最後に 1 つ欠けています。

于 2013-05-10T13:18:37.067 に答える