2016-05-19 12 views
1

// Excelの一部の行を削除しようとしています。しかし、私が直面している問題は、すべてのレコードを削除せず、行を削除して残りの行を残してしまうことです。オフィスの相互運用機能を使用してExcelの行を正しく削除できない

for (int i = 2; i <= lastRow; i++)   
{    
    Array MyValues = (Array)MySheet.get_Range("A" + i.ToString(), "AN" + i.ToString()).Cells.Value; 

    if (Convert.ToString(MyValues.GetValue(1, 1)) == "" && Convert.ToString(MyValues.GetValue(1, 2)) == "" && Convert.ToString(MyValues.GetValue(1, 3)) == "") 
    { 
     break; 
    } 
    else 
    { 
     Excel.Range cells = MySheet.get_Range("A" + i.ToString(), "AN" + i.ToString()); 
     cells.Delete();      
    } 
} 

答えて

0

から行を削除したい今までどこ

「×」である私の質問を解決します。

i.e for(i=lastrow;i>=2;i--) 
    { 
     //delete 
    } 
0

if文でcontinueの代わりにbreakを使用している可能性はありますか?

また、削除とループを組み合わせるときは注意が必要です。ループが行5を削除すると、行6は行5になり、ループはそれをスキップします。これは起こっていることかもしれません。

0

あなたは反復で削除していると思います。

たとえば、最初の行を削除してから、セルが上に移動します。だからあなたの "私"は2になり、上に移動した最初の行をスキップしました。

FIX:

細胞= MySheet.get_Range( "斧"、 "ANX")。あなたが逆方向にループすることにより、

関連する問題