2010-11-19 15 views
1

私はC#excel interopフレームワークを使用して私の会社のレポートを自動生成しています。誰かがこれで式をドラッグする方法を知っているのだろうかと思います。C#excel interop formula dragging

名前付きの範囲でこれを行うことができれば、これはさらに優れていますが、行をハードコードする必要がある場合でも、A10:J10からA20:J20までドラッグする行に沿っている必要があります。

これを行う方法を説明しているウェブページへのポインタでさえ、私がこのようなことに固執しているので、非常に感謝しています。

ありがとうございます!

答えて

5

Rangeオブジェクトにはオートフィルというメソッドがあります。これを試してください。

range.AutoFill(destinationRange); 
0

私はこのようなことをずっと前にしました。私のコードの例は次のとおりです。

Excel.Range rng, rngResize; 
rng = (Excel.Range)oSheet.get_Range("A10", "J10"); 
rngResize = rng.get_Resize(10, Missing.Value); 
rngResize.Formula = "=B9+I8"; 

この式は相対的に適用されます。そして、私は各ステップに別々の変数を使用したので、それらはDisposedになることができます。これが役に立ったら教えてください。

+0

私はこれについて考えましたが、このリンクを発見しました。http://msdn.microsoft.com/en-us/library/microsoft.office .tools.excel.namedrange.get_resize(VS.80).aspxは、関数がコードから直接使用されるはずではないことを示します。 –

0

WorksheetオブジェクトのListObjectsコレクションのAddメソッドを呼び出すと、Excelテーブル(ListObject)を作成できます。これは、Excelで「表形式」コマンドを使用するのと同じです。表の行に入力された式は、表の列に対する相対参照を使用して、表のすべての行に自動入力されます。この動作は既定でオンになっていますが、次の設定で制御できます

Globals.ThisWorkbook.Application.AutoCorrect.AutoFillFormulasInLists