从Delphi程序中删除Excel中的行

我想用Delphi7程序从Excel中删除行。
这引发了一个exception:

Excel := CreateOleObject('Excel.Application'); ... Excel.ActiveWorkBook.Rows(row).Delete; 

我究竟做错了什么?

Rows是工作表的属性。 所以这应该工作:

 Excel.ActiveWorkBook.ActiveSheet.Rows[row].Delete; 

请参阅“Excel对象模型参考” 。

以下为我工作:

 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单元,这个代码就可以为你工作。

使用早期绑定将允许您在编译时捕获这样的错误,而不是难以诊断运行时错误。

如果你想继续后期的约束,那么就像塞尔塔克说的那样:

 Excel.ActiveSheet.Rows[1].Delete; 

不要忘了先创build一个工作簿!