Delphi7プログラムでExcelから行を削除したいと思います。
これは、例外がスローされます。DelphiプログラムからExcelの行を削除
Excel := CreateOleObject('Excel.Application');
...
Excel.ActiveWorkBook.Rows(row).Delete;
は私が間違って何をしているのですか?私にとって
Delphi7プログラムでExcelから行を削除したいと思います。
これは、例外がスローされます。DelphiプログラムからExcelの行を削除
Excel := CreateOleObject('Excel.Application');
...
Excel.ActiveWorkBook.Rows(row).Delete;
は私が間違って何をしているのですか?私にとって
Rows
は、Worksheetのプロパティです。これはうまくいくはずです:
Excel.ActiveWorkBook.ActiveSheet.Rows[row].Delete;
"Excel Object Model Reference"を参照してください。
それは動作します。 Excel.ActiveSheetは簡単になりますか? –
@David - はい! :) –
+1私はあなたとは違って、エラーの原因を少なくとも説明しました。私はちょうど早期拘束のために直進した私は遅い綴りが嫌い。 –
次作品:ずっと楽になり、私は事前バインディングを使用してい
var
Excel: ExcelApplication;
Workbook: ExcelWorkbook;
Sheet: ExcelWorksheet;
begin
Excel := CoExcelApplication.Create;
Workbook := Excel.Workbooks.Add(EmptyParam, LOCALE_USER_DEFAULT);
Sheet := Workbook.ActiveSheet as ExcelWorksheet;
Sheet.Range['A1','A1'].EntireRow.Delete(EmptyParam);
end;
注意。 Excel2000ユニットを含めるだけで、このコードが役に立ちます。
アーリーバインディングを使用すると、実行時エラーを診断するのではなく、コンパイル時にこのようなエラーを検出できます。
あなたはSertac状態として、その後、遅延バインディングを続行したい場合は、この作品:
Excel.ActiveSheet.Rows[1].Delete;
はしかし最初のブックを作成することを忘れないでください!
ワークブック・ページを作成するだけでなく、ユーザーがワークシートを完全にクローズしている可能性があるため、毎回ActiveSheetがあるかどうかを確認してください。 –
例外は何ですか? – shahkalpesh