2010-12-09 4 views
0

Этот код должен получать все строки в указанном диапазоне и удалять ТОЛЬКО строки, в которых нет данных DATA. Тем не менее, он удаляет все строки в диапазоне. Зачем?Excel удаляет строки, удаляющие неправильные строки

Range range = _sheet.get_Range("A25:A542", Type.Missing); 
range = range.EntireRow; 
range.Delete(Type.Missing); 
+0

Извините, но я вижу, что ваш код сделал именно то, что он должен был делать. – Bolu 2010-12-09 14:35:32

+0

Вы не указываете, какие ячейки в строке вы хотите удалить. Вы выбираете всю строку с параметрами `range = range.EntireRow;` и `range.Delete (Type.Missing);` удаляет эту целую строку – 2010-12-09 14:38:21

ответ

1

Type.Missing не означает, что вы думаете, что значит. Type.Missing является COM-артефактом - он просто сообщает объекту Excel, что вы не предоставляете этот конкретный параметр. Это то, о чем обычно заботятся о вас в VB.NET и VBA. C# 4.0 поддерживает дополнительные параметры, что значительно упрощает работу.

1

Вы не проверьте, есть ли DATA существует, поэтому программа удаляет все строки из строки 25 сезам линии 542.

Смежные вопросы