yune
(yune)
1
同一シートに、データテーブルと同名の表がタイトル付きで存在するExcelファイルがあります。
(最終行は表によりまちまちです)

この表に、データテーブルの内容を末尾に追記したいのですが、うまく行きません。
「範囲内で検索」でデータテーブル名を検索しセル番地を取得。
「範囲に書き込み」をすると最初に追記されてしまいます。
セル番地をsplitしてA+(最終行番号+1)のようにするのが最適なのでしょうか?
excel最終行に追記.zip (19.7 KB)
お手数ですがわかる方いらっしゃいましたら教えてください。
1 Like
yukino
(kawahara)
2
もう一声詳しく情報いただけると。
表AAAAの最後に表BBBBをコピーしたいのか、
表AAAAの最後に(別処理で取得済みの)データテーブルを入れたいのか、どんな感じでしょ?
[範囲に書き込み]アクティビティは、指定したセル位置からデータテーブルの内容を出力するので、
単に末尾に追加するだけならば、どーにかして表AAAAの最後のセル位置を取得する必要があります(上の例だと、2019/04/10の下のセル位置ですね)
あるいは、
表AAAAを取得 → 別データテーブルを作成 → [Merge DataTable]でテーブル結合 ->表AAAAの位置に[範囲に書き込み]で、結果的にテーブル内容を末尾に追加する、という書き方もあります。
yune
(yune)
3
ご返信ありがとうございます。
やりたいのは
表AAAAの最後に(別処理で取得済みの)データテーブルを入れたい
こちらです。
範囲に書き込み]アクティビティは、指定したセル位置からデータテーブルの内容を出力するので、
単に末尾に追加するだけならば、どーにかして表AAAAの最後のセル位置を取得する必要があります(上の例だと、2019/04/10の下のセル位置ですね)
ExcelにAttachWindowしてCtrl+Fで"AAAA"を検索、セル位置が特定できたらCtrl + Shift + Down等になるでしょうか?(もしくはExcelLookupRange?)
その場合もセル番地を取得するにはどのアクティビティを使えばよいか見当がつかず・・・
表AAAAを取得 → 別データテーブルを作成 → [Merge DataTable]でテーブル結合 ->表AAAAの位置に[範囲に書き込み]で、結果的にテーブル内容を末尾に追加する、という書き方もあります。
表AAAAを取得する場合に、末尾の行が不明な場合はどのようにRead Rangeすればよいでしょうか。(Excelファイル側にテーブルを作ってあげてGet Table Range?)
あいまいな質問で申し訳ありません。よろしくお願いいたします。
1 Like
yukino
(kawahara)
4
簡単にですが、作ってみました。
Excelを操作して表AAAAAの最終セル位置を取得、その下のセルを貼り付け起点として設定、データを書き込むサンプルです。
2 Likes
yukino
(kawahara)
5
意外と知られていない?のですが、[範囲を読み込む]際に、範囲プロパティを空白にしておくと(データが何件あっても)データの最終行までを取得してくれます。
ただし、今回のような1つのExcelに AAAAAとBBBBBのような複数表があると、この両方を含む1つの大きな表としてデータを取得しまいますので、上記方法は使えません。
事前の業務整理において、「入力表は1シートに1個だけ」「UiPathが読める形式にする」(セルを結合しない・見出しを1行にする)などを決めておくとロボットが動きやすいです。
2 Likes
yune
(yune)
6
ありがとうございます。確認しました。
想定通りの動きでした。
Send HotKeyを使う都合上、データが大きくなると問題が発生しそうなので、ご提案頂いた通り書式の改定を担当者にお願いしてみます。
お忙しい中、本当にありがとうございました。
1 Like