Удалить строку в Excel из программы Delphi - PullRequest
3 голосов
/ 14 марта 2011

Я хочу удалить строки из Excel с помощью программы Delphi7.
Это вызывает исключение:

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

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 14 марта 2011

Rows является собственностью рабочего листа .Так что это должно работать:

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

См. «Справочник по объектной модели Excel» .

2 голосов
/ 14 марта 2011

У меня работает следующее:

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;

Не забудьте сначала создать рабочую книгу!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...