2010-12-09 25 views
0

Ce code est supposé obtenir toutes les lignes dans la plage que je spécifie, et supprimer uniquement les lignes sans cellule DATA dans celles-ci. En fait, il supprime toutes les lignes de la plage. Pourquoi?Excel supprimer des lignes supprimant les lignes incorrectes

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

Je suis désolé mais je peux voir que votre code a fait exactement ce qu'il était censé faire. – Bolu

+0

vous ne spécifiez pas les cellules de la ligne que vous souhaitez supprimer. Vous sélectionnez la ligne entière avec 'range = range.EntireRow;' et 'range.Delete (Type.Missing);' supprime cette ligne entière –

+1

Vous devriez probablement poser cette question ici - http://stackoverflow.com/questions/4398770/comment nettoyer-microsoft-office-interop-excel-classeur. –

Répondre

1

Type.Missing ne veut pas dire ce que vous pensez que cela signifie. Type.Missing est un artefact COM - il indique simplement à l'objet Excel que vous ne fournissez pas ce paramètre particulier. C'est le genre de chose qui est normalement pris en charge pour vous dans VB.NET et VBA. C# 4.0 prend en charge les paramètres facultatifs, ce qui facilite grandement les choses.

1

Vous ne vérifient pas si des données existe, de sorte que le programme supprime toutes les lignes de la ligne 25 til ligne 542.

+0

Je pensais que le contrôle Type.Missing s'occupait de ça dans get_Range. Sinon, comment pourrais-je faire ça? – slandau