1

我试图说服 Excel 从 Delphi 应用程序中插入一行。

通常我只会将新数据附加到电子表格的末尾,但此应用程序的简要说明需要遵循严格的模板设计。

这个问题有一个答案,GolezTrol 建议以下代码:

ExcelApplication.ActiveSheet.Rows[10].Insert;

或者

ExcelApplication.ActiveSheet.ActiveCell.EntireRow.Insert;

使用 Excel2010,当我尝试编译任一选项时,我会得到“未声明的标识符‘行’”或“未声明的标识符:ActiveCell”。

有什么建议可以让我这样做吗?

4

1 回答 1

5

您正在使用早期绑定,您在链接的问题中提到的答案是后期绑定。您可以使用以下代码测试该答案:

var
  Excel: OleVariant;
begin
  Excel := CreateOleObject('Excel.Application');
  Excel.Visible := True;
  Excel.Workbooks.Add;
  Excel.ActiveSheet.Rows[10].Insert;
  ...


然而,对象模型与早期绑定接口有些不同。您可以在此处找到参考。

插入行的示例如下所示。假设“工作簿”指的是一个有效的工作簿,然后您可以在第 10 行插入一行,如下所示:

var
  Range: ExcelRange;
begin
  Range := (Workbook.ActiveSheet as _Worksheet).Range['A10', 'A10'].EntireRow;
  Range.Insert(xlShiftDown, Null);
  ..
于 2013-01-28T21:09:35.150 回答