引数 'Range': BC30512: Option Strict On では 'DataTable' から 'IReadRangeRef' への暗黙的な変換は許可されていません。 選択した値がプロパティの型に対応していません。

引数 ‘Range’: BC30512: Option Strict On では ‘DataTable’ から ‘IReadRangeRef’ への暗黙的な変換は許可されていません。 選択した値がプロパティの型に対応していません。

範囲を読み込みを使用してExcel のデータを"経費データ"という変数に格納して、繰り返し(Excelの各行)を使用して範囲を先ほどの"経費データ"に指定するとこのようなエラーが表示されます。また、この後に"経費データ"をDataTable型で使用するため、型は変えたくない、もしくは変えても使えるような方法はありますでしょうか。

入力データをDataTableとして読み込んでいるようですので、繰り返し(データテーブルの各行)アクティビティを使用して、DataTableを更新ください。
エクセルに書き戻す必要がある場合は、データテーブルを書き込みアクティビティを使用してみてください。

あるいはDataTableとして読み込まず直接繰り返し(Excelの各行)を使う方法もあります。

Hi @tttttt

To iterate the each row in Expense Data datatable datatype variable. You have to use the For each row in datatable activity. Don’t use for each excel row activity, it will not accept to iterate the datatables.

Hope it helps!!

1 Like

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

おっしゃる通りに変更したところうまく動作してそうです!
ありがとうございます。
しかし、範囲を読み込みの時点で表示行のみにチェックを入れているにもかかわらずnullのエラーが出てくるようになりました。

24.10.1+Branch.master.Sha.9c270cffe65425641403b7809635c506d263462d.9c270cffe65425641403b7809635c506d263462d

ソース: Sequence

メッセージ: Object reference not set to an instance of an object.

例外の型: System.NullReferenceException

System.NullReferenceException: Object reference not set to an instance of an object. at Namespace_d1a6.Process_Expressions.Process_Expressions_TypedDataContext10.__Expr18Set(Object value)
at Namespace_d1a6.Process_Expressions.Process_Expressions_TypedDataContext10.ValueType___Expr18Set(Object value)
at System.Activities.Location`1.ReferenceLocation.set_Value(T value)
at System.Activities.ActivityContext.SetValueCore[T](LocationReference locationReference, T value)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
— End of stack trace from previous location —
at UiPath.UIAutomationNext.Activities.NApplicationCard.OnFault(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.FaultWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)

これはどういったエラーなのでしょうか。

こんにちは

エラーメッセージだけでは原因がわかりませんので、可能であれば作成したワークフローのスクリーンショット等詳細情報も共有いただければと思います。

先ほどご教授いただいた部分でExcelの各行から、データテーブルの各行に変更して行ったところ、やはり空白行を読み続けていることが発覚いたしました。このアクティビティだと空白行は読まないなどの設定はできないのでしょうか。

経費データにデータテーブルを格納する際は、表示行のみで読み込んでおります。

範囲読み込みアクティビティにはそのような機能はありません。
表示行のみのチェックは、非表示な行を処理するか否かのチェックなので、空白行とは関係ありません。

このデータテーブルは処理後同じ場所に書き戻しますか?
書き戻さないのであれば、データテーブルをフィルターアクティビティで空白がある行をフィルターしてから、繰り返しに投入すれば良いかと思います。

書き戻すのであれば、空白行を削除してしまうと行がずれると思いますので、ループ中で空白のチェックをして、空白なら繰り返しをコンティニュー等のアクティビティで以降の処理をスキップさせればよいかと思います。

1 Like

書き戻しますので空白であれば繰り返しをスキップの処理を入れまして、空白が終わるまでスキップさせ続けると処理は長くなりますが、正常に動作いたしました。
ご回答ありがとうございました!