2

私は常に以下のように見えるExcelシートを持っています

A |  B  |  C
  |     |    
  |     |  something here maybe 
1 |  x  |  k
2 |  y  |  l
3 |  z  |  n
  |  j  |  
  |  j  |  
   ...
  |     |  

A列の最後の空でないセルの値を取得したい。列は常にA6から始まり、しばらくすると空になりますが、列Bはしばらく続きます。これには、以下のコードを使用すると次のような効果があります。

sh = app.Workbooks.get_Item("Workbook1.xlsx").Worksheets.get_Item("Sheet1");
fullRow = sh.Rows.Count;
lastRow = sh.Cells[fullRow, 1].End(Excel.XlDirection.xlUp).Row;

B が空でない最後の行を最後の行として取得します。A が null になり始める場所よりも 50 行下の場合もあります。すべての値を反復せずにC#でそれを行う方法はありますか?

編集

列 A は列 C に基づいていることが判明したため、C を確認する必要があります。C が A と同じ結果をもたらしているのは、関数が原因である可能性があります。幸いなことに、同じ問題を抱えていない列 D があるため、上記のコードを使用して 1 を 4 に変更すると、うまく機能します。

4

1 に答える 1

1

編集: 申し訳ありませんが、最初は質問を誤解していました.KekuSemauに感謝します.

試す:

sh.Range["A1", sh.Cells[1,sh.Rows.Count]].End(Excel.XlDirection.xlDown).Value;

また、列に空のセルがないことがわかっている場合は、CountA を使用できます。

var usedRows = xlApp.WorksheetFunction.CountA(xlWorkSheet.Columns[1]);

ソース

于 2013-08-12T17:12:25.630 に答える