Excelの新規ファイル作成後開くとファイルが壊れてると出る

Uipathで以下の処理をやるプログラムを作っています。

①ファイルの中身を上から1行ずつ読み込み、
D列にマークが入っていたらその行をコピー
②新規でファイルを作る
③新規ファイルにコピーした行を貼り付け

①-③を繰り返して全ての行の読み込みが終わったら閉じるというのを
やっているのですが、
①ー③まではうまく進んでも、処理が終わった後に新規ファイルを確認すると
画像の通りエラーが出ます。

対策としては・・・全く分かりませんでした。
貼り付け処理がいけないのか?それとも・・・?

Uipathで新規ファイルを作成し、データを貼り付ける処理でこういうエラーが出る場合の対策方法をご存知の方、教えていただけますでしょうか?

ちなみに、ファイル自体はちゃんと作られているようです。
また、データの中身は入ってないようです。

データが入っていないのが問題なのかもしれませんが、まずは開けるようにしたいです。
よろしくお願いいたします。

エクセルは内容が空でも「数kb」になるので、0kbだということは、保存でなにか失敗しているかもしれません。
行をコピーしたものなら、作成するファイルの拡張子は、xlsm(マクロ付きファイル)ではなく、xlsx(マクロなしファイル)で良い気もしますが。

作成されたフローの画面キャプチャを共有すると、分かる人がいるかも知れません。

ありがとうございます。
xlsxにしても変わりませんでした。
おそらく格納する時点(コピーしたデータを貼り付ける時点)で何かがおかしいのかな?と思っています。
とりあえず、フロー画面のキャプチャを貼り付けておきました。
何か分かることがあれば、よろしくお願いいたします。

こんにちは

ファイルを作成アクティビティは単に空のファイルを作成するだけですので、この場合は使う必要はありません。

単に書き込みたいファイル名でエクセルアプリケーションスコープ(ファイルが無いときは新規作成オプションをオン)を配置しその中で範囲書き込み、またはシステム-ファイル-ワークブック以下の範囲書き込みを用いると、自動的に中身のあるファイルを生成してくれます。

2 Likes

こんにちは。
なるほど・・・今やったらできました!
ですが、1行だけコピーして貼り付けたいのに、全部貼り付けられてしまいます。
1行だけコピーして貼り付けられるようにするにはどうしたらいいのですか?

こんにちは

範囲読み込みで、必要な箇所だけを読み込む(セルの範囲を指定する)か、
(現状のように)自動的に表の範囲を取得して、データテーブルをフィルターアクティビティ等で
必要な行を抽出してから、書き込むと良いと思います。

ありがとうございます。
まずおっしゃる通り、必要な箇所だけ読み込むようにしてみました。
しかし、範囲が存在しませんというエラーが出ます。
新規ファイルで「範囲が存在しません」とはどういうことなのか分かりません。

かつ、データテーブルをフィルターアクティビティなどで必要な行を抽出してから
書き込むときはテーブルをフィルターするアクティビティがうまくいきません。

なんだかどちらもうまくいかず困っています。
何が間違っているのでしょうか・・?

こんにちは

範囲を読み込みで、読み込み範囲が1行しか指定ておらず、
かつ「ヘッダーを追加」がOnになっているので
実データがない状態になっていると思いわれます。

この1行だけを移したいのであれば、ヘッダーはOFFで良いと思います。

1 Like

そうだったんですね!ありがとうございました。
おっしゃる通りヘッダーをOFFにしたら無事できました。
あとはこれが1行だけでなく最後の行まで繰り返しできるようにまた考えていきます。
ありがとうございました。