2010-12-09 29 views
0

Dieser Code soll alle Zeilen in dem Bereich, den ich angeben, und löschen Sie nur die Zeilen ohne Zelle Daten in ihnen. Es löscht jedoch tatsächlich jede Reihe in der Reihe. Warum?Excel löschen Zeilen löschen falsche Zeilen

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

Es tut mir leid, aber ich kann sehen, dass Ihr Code genau das getan hat, was er tun sollte. – Bolu

+0

Sie geben nicht an, welche Zellen in der Zeile, die Sie löschen möchten. Sie wählen die gesamte Zeile mit 'range = range.EntireRow;' und 'range.Delete (Type.Missing);' löscht die gesamte Zeile –

+1

Sie sollten diese Frage wahrscheinlich hier stellen - http://StackOverflow.com/questions/4398770/How-to-Aufräumen-Microsoft-Office-Interop-Excel-Arbeitsmappe. –

Antwort

1

Type.Missing bedeutet nicht, was Sie denken, es bedeutet. Type.Missing ist ein COM-Artefakt - es teilt dem Excel-Objekt nur mit, dass Sie diesen bestimmten Parameter nicht bereitstellen. Es ist die Art von Sache, die normalerweise in VB.NET und VBA für Sie erledigt wird. C# 4.0 unterstützt optionale Parameter, was die Arbeit wesentlich vereinfacht.

1

Sie überprüfen nicht, ob alle Daten jederzeit vorhanden ist, so dass das Programm löscht alle Zeilen von Zeile 25 bis Zeile 542.

+0

Ich dachte Type.Missing Check kümmert sich darum in get_Range. Wie sonst würde ich das tun? – slandau