TExcelApplicationでオートフィル

解決


studio-take  2012-09-12 05:35:56  No: 42915

したいんですが、なかなか上手くいきません。

ご指導お願いします。
var
RangeCode1,RangeCode2:String;
begin
RangeCode1 := Cells.Item[ARow1,ACol1].Address;
RangeCode2 := Cells.Item[ARow2,ACol2].Address;
ExcelSheet.Range[RangeCode1,RangeCode2].AutoFill(Range[RangeCode1,RangeCode2],xlFillDefault);


KHE00221  2012-09-12 13:51:07  No: 42916

カーソルどこにある?


Nov  2012-09-12 16:03:00  No: 42917

元データのレンジとオートフィルのレンジが同じになってます。
(EXCELのメソッドで分からないことは、マクロの記録で確かめると楽かも)


studio-take  2012-09-13 05:25:15  No: 42918

マクロの確認はしています。
で、DELPHIのコード補完を見ながら、合いそうな部分に変数ぶっ込んでたんですが、書式が違うとよくわからなくて。

で、まず、
ExcelSheet.Range[RangeCode1,RangeCode1].SelectもしくはActivate
してみて、
ExcelSheet.Range[RangeCode1,RangeCode1].Autofill(Range[RangeCode2,RangeCode2],xlFillDefault);
ってしてみましたが、「AutoFillに失敗しました」が出ます。


Nov  2012-09-13 09:00:56  No: 42919

Excelコンポーネントは使わない方の人なので、試してませんが、

ExcelSheet.Range[RangeCode1,EmptyParam].Autofill(..省略..);

ではどうですか。


KHE00  2012-09-13 10:04:17  No: 42920

ExcelSheet.Range[RangeCode1,RangeCode1].Autofill(Range[RangeCode1,RangeCode2],xlFillDefault);

こうじゃないか?

マクロからみて
Range[RangeCode1,RangeCode1].
がいらない気がしないでもない


studio-take  2012-09-13 14:39:24  No: 42921

早起きして再実験しました。

やっと通りました。
原因は、RangeCode1の設定でした。
必ず縦1方向か横1方向でないといけないのを斜め引っ張りをやってしまっていたので、エラーの原因になっていたようです。

オートフィルのコーディングは、
ExcelSheet.Range[RangeCode1,RangeCode1].Autofill(ExcelSheet.Range[RangeCode1,RangeCode2],xlFillDefault);
でいけました。
皆さんありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加