重複の可能性:
Excelシートで占有セルの範囲を取得する方法
Excel ワークシートで最後に使用された行を見つけようとしています。これを行うために、私はこのコードを使用しています:
int lastUsedRow = currentWS.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell,Type.Missing).Row;
ほとんどの場合、問題なく動作しますが、Excel は、シートに想定よりも多くの行があると判断することがあります。
Fx: 12 行を含むシート 1 から空のシート 2 にデータをコピーし、右クリックして [削除...] を押してシート 2 のすべてのデータを削除し、5 行を含むシート 3 からシート 2 にデータをコピーすると、 lastUsedRow は、5 である必要がある 12 の値を与えてくれます。
上の画像の例では、行数として 22 の値を与えると想定していますが、代わりに 634 を取得します。右側のスクロール バーに注目してください。
Excel は、すべてのセルを削除したにもかかわらず、新しいデータをより少ない行でシートにコピーする前に、一部のセルが塗りつぶされていると考えているようです。
シート内のデータのビューを「サイズ変更」して、使用されたセルの正しい数を取得する方法、または最後に使用された行の数を見つける別の方法はありますか?
ありがとう。