エクセル範囲を読み込みが失敗します

いつもお世話になっております。

csvとxlsxが混在したフォルダから一つずつファイルを読み込みシステムに転記するという作業をしています。

csvだったら「csvを読み込み」を使い出力先を「dt_読込内容」として持たせます。
その後「代入」を使い変数「処理ファイル名」としてエクセルに変換します。
xlsxだったら「ファイルをコピー」を使い、元データをコピーしてコピー先に変数「処理ファイル名」とします。

その後エクセルアプリケーション内でブックのパスを「処理ファイル名」とし条件分岐を使って「dt_読込内容」がなかったら(つまりxlsxだったら)「範囲を読み込み」を使うのですが、うまくいきません。

ご教授よろしくお願いいたします。

こんにちは

どのようにうまくいかないのでしょうか?エラーなどが出ていますでしょうか?

上記画像だけですと、まずはdt_読込内容がループ開始部分で
初期化(スコープが適切かという観点あるいはnull\Nothingが代入されているか)
されているかどうか等が確認ポイントになるように思えます。

ご回答ありがとうございます。

1回目はうまくいく時が多いのですが、2つ目のファイルを取った時に失敗します。
エラー内容は「位置0に行がありません」と出ます。

初期化ですが、システムに入力し終わった後、最後に代入を使い
「dt_読込内容」=New System.Data.DataTableとしています。
よろしくお願いいたします。
image

こんにちは

上記では条件分岐での条件式 dt_読込内容 is Nothing に際して問題となります。
(変数自身が空ではなく、空のDataTableがある状態をイメージいただくと良いと思います。)

そのため代入アクティビティで

dt_読込内容 = Nothing

としてみてください。

教えていただきありがとうございます。
アドバイス通り書いてみたのですが、コンパイルエラーが出て「代入で型System.Objectから型System.Data.DataTableに割り当てることはできません」と出るのですが、どのように処理したらよろしいでしょうか。
たびたび申し訳ありませんがよろしくお願いいたします。

こんにちは

エラーの出ている箇所のスクリーンショットを共有いただくことは可能でしょうか?

先ほどエラーになっていた「代入」を削除して他のアクティビティ」を置いて試していたため、もう一度代入を配置し先ほど入れたとおりにしたら、今度はエラーマークがつきませんでした。
dt_読込内容は変数としてあるので途中まで書いたら下にuipathが候補を出してくれたものから選びましたし、Nothingにしても下に候補がでてきたのでそれを選びました。
今となっては何故エラーが出たのかわかりませんが、今回は上手くいきました。
いろいろありがとうございました。
現在、他のエラーが出ているので(フォーラムにもあげています。自分なりに少し調べてみたのですが難しいようです)それが直りうまく流れるようになったら試してみます。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.