エクセルの最終行を認識する

studio

#1

エクセルの表で常に最新の行に情報を入れたいのですが、どのように設定すればいいでしょうか?
例えば以下のようなケースです。
日のところは全て入力されており、判定のところに最終行の1つ下を入力対象として認識して入力してきたいです。

日 判定
1/1 〇
1/2 ×
1/3


#2

Hi @shohei017

あなたがExcelの最後の行に情報を追加したい場合。

アクティビティを使用してください: Append Range.

入力がデータ型であることを確認してください。: DataTable


#3

ありがとうございます。でもappend rangeはシートの追加ですよね?
シートではなく、例えばA列で入力されている最終行を見つけたいんです。


#4

@shohei017 さん

A列(日付)の最終行番号を取得であれば、
Read RangeでDataTable変数に格納すれば、Datatable変数.rows.countで取得可能です。
ヘッダー追加のチェックは外してください。


#5

ありがとうございます。ちなみにb列の最終行など列を変える場合はどのようにすればいいでしょうか?


#6

@shohei017

色々やり方はあるので、ざくっと3種詰め合わせました。Zipファイルをどうぞ。

  • DataTableの2列目(B列)最終行からカウントして最終入力行を取得(途中で空白データがある場合はこちらが良いかと)

  • DataTableの2列目(B列)を空白行削除でフィルタリングし、データ数をカウントして取得

  • 列の要素を配列で取得し、空白を削除した件数を取得

この他、VB.NetやLinqでも手段はあると思います。
(そちらの回答が必要でしたら、他回答者様に期待 :sweat_smile: )

Excel_GetLastRow.zip (10.0 KB)


#7

ありがとうございます。参考にさせていただきます!


#8

ryokoさん、
すみませんが初心者のため教えてください。
なぜ最終行を取得する時datatable場ではrow.count-1になるのでしょうか?


#9

行数のカウントは文字通り行の数ですので
例えば10行がデータテーブル内に存在していれば
Rows.Countは「10」が戻り値になります。
ただ、アクティビティ内で設定する"インデックス"(行の位置)
については、カウントが"0"から始まるため、上記の行数から-1してあげると、
ちょうど最終行のインデックスの値になります。
Columsについても同様です。


#12

Rokolibroさん
ありがとうございます。よく理解できました。ちなみにrokolibroさんはどのようにしてUipath を学ばれたのでしょうか?