7

vstoまたはc#を使用してExcelシートで最初に使用可能な空白行を見つける方法はありますか?私は何時間も探していましたが、それに関連するものを見つけることができません。この点での助けは大歓迎です

4

3 に答える 3

8
Excel.Worksheet xlWorkSheet1 = (Excel.Worksheet)excelbk.Worksheets["Sheet1"];
xlRange = (Excel.Range)xlWorkSheet1.Cells[xlWorkSheet1.Rows.Count, 1];
long lastRow = (long)xlRange.get_End(Excel.XlDirection.xlUp).Row;
Long newRow = lastRow + 1

このリンクからのコード: http://social.msdn.microsoft.com/Forums/pl/exceldev/thread/90384567-3338-4c56-bc6b-70db94d8cbcc

于 2012-05-25T11:00:11.057 に答える
3

App が Excel アプリケーションの場合、番号 1 から始まる行をループして、CountA 関数を使用して最初の空のセルを探すことができます (Range の空でないセルの数を返します)。

int rowIdx = 0;
int notEmpty = 1;
while (notEmpty > 0)
{
    string aCellAddress = "A" + (++rowIdx).ToString();
    Range row = App.get_Range(aCellAddress, aCellAddress).EntireRow;
    notEmpty = _App.WorksheetFunction.CountA(row);
}

while ループが終了すると、rowIdx は最初の空の行のインデックスになります。

CountA は他の 29 個のオプションの引数を受け取るため、以前のバージョンのフレームワークでは Missing.Value を 29 回渡す必要がある可能性があります。

于 2012-05-25T12:31:59.323 に答える
2

Range.End プロパティまたは Range.get_End メソッドを方向と組み合わせると、範囲内の最初の空白セルが得られます。

考えられる解決策については、この質問をご覧ください: C# を使用してプログラムで Excel シートの次の空白行を検索する方法
キービットは次のとおりです。

Excel.Worksheet xlWorkSheet1 = (Excel.Worksheet)excelbk.Worksheets["Sheet1"];
xlRange = (Excel.Range)xlWorkSheet1.Cells[xlWorkSheet1.Rows.Count, 1];
long lastRow = (long)xlRange.get_End(Excel.XlDirection.xlUp).Row;
Long newRow = lastRow + 1

ただし、最後のセルまですべてのセルが常に満たされることがわかっている列がある場合は、下方向に終了する可能性があります。

于 2012-05-25T11:03:07.860 に答える