リストにあるシートの中身を読み取る

いつもお世話になっております。
リストにあるシートを読み取る条件設定をしたいのですが、どのように設定すればよいかアドバイスいただけないでしょうか?

あるExcelファイル(A)の各シートの明細を読み取りたいのですが、
シートが複数あり、毎回全てのシートがあるとは限りません。

その為、別Excelファイル(B)にシート名の一覧を用意しており、
(B)のリストにあるシート名が(A)に存在した場合、そのシートを読み取るという条件設定をしたいです。

(B)のリストはExcelの範囲の読み込みでデータテーブル型の変数に入れています。
(A)のシート名は、CurrentSheet.Nameで取れていることまで確認できています。

(A)イメージ
image
(B)イメージ
image

ご助言いただけますと助かります。よろしくお願いいたします。

@y.c

You can use this

  1. Use Excel file on the excel where you want to read the actual sheets
  2. For each sheet in excel activity
  3. Inside that loop use if condition with dt.AsEnumerable.Any(function(x) x(0).ToString.Equals(currentSheet.Name))
  4. on then side sheet is matched and on else it is not

cheers

1 Like

こんにちは

以下サンプルいかがでしょうか?

Sample
Sample20240129-3.zip (16.0 KB)

1 Like

Yoichiさん、いつもありがとうございます。

サンプルを元に、実際のフローに当てはめて作ってみているのですが、
メッセージボックスところで「‘currentItem’ は宣言されていません。アクセスできない保護レベルになっています。 変数 ‘currentItem’ が見つかりません。データ マネージャーを使用して再度作成してください。」とエラーが出てしまいそこから進めなくなってしまいました。

ファイル自体は、特定のフォルダにその時入っているものをループで処理させたいので、CurrentFileにしています。また、読み取る範囲も明細行のとこだけなので、Rangeで指定しています。

何か指定が間違っているのでしょうか…?

メッセージボックスとデータテーブルを出力は、繰り返し(コレクションの各要素)の中になければなりませんので、これらをループの中に移動してみてください。

ありがとうございます。
基本的な所で失礼いたしました。
こちらで解決しました。

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