Excelから抽出した値を検索して、検索にない場合はExcelに記載、あった場合はクリック動作を実現したい

Excelから抽出した値を1つずつブラウザアプリに検索にかけて、検索対象が表示されればクリック、表示されなければExcelに記載してクリック動作をスキップという動作を、抽出した値分繰り返すように設定したいです。

現在設定しているフローは以下なのですが、検索結果に対象がない場合、出力された検索結果から対象を探すのに時間がかかっているのと、検索で引っかからなかったものをExcelに記載してくれません。。。
(検索結果に対象がない場合、出力された検索結果が2件ほどであっても後続処理までに時間がかかってます。)

データテーブルの構築
追加失敗 string
変数:dttable2


繰り返し(各UI要素)
繰り返し:現在の要素
抽出数の制限:最大UI要素数
項目数:10

代入
target=CurrentRow(currentItem).ToString()

トライキャッチ
トライ
クリック ※ここは問題なく動作しています。
キャッチ
NodeAmbigrousException
→繰り返し(Excelの各行)
繰り返し:CurrentRow
対象範囲:Excel.Sheet(“Sheet2”)
先頭行をヘッダーとする☑
→AddDataRow
列配列:New Object() {target}
データテーブル:dttable2
NodeNotFoundException
→繰り返し(Excelの各行)
繰り返し:CurrentRow
対象範囲:Excel.Sheet(“Sheet2”)
先頭行をヘッダーとする☑
→AddDataRow
列配列:New Object() {target}
データテーブル:dttable2

なかなか分かりにくいかと存じますが、よろしくお願いいたします。

Hello @afna

Can you perhaps share a screenshot/file for your current project?

And do you get any error message that we can use to troubleshoot, or does the activities simply not work the way you intended?

Regards
Soren

ご返信ありがとうございます!
スクリーンショット2枚に別れてしまいますが以下になります!
また、長いフローの一部の処理のためデーターテーブルの構築はスクショ外にあります。


意図したとおりに動かないし、エラーが出てしまいます。
意図したとおりに動かないというのは、検索対象を検索にかけて検索結果に対象が複数見つかってしまう場合、クリック動作、Excel記載どちらもせずに次の検索対象を検索にかけてしまいます。
検索結果に対象が複数表れた場合、両方クリックしてくれるのが理想ですが制御が難しそうだったので、Excelの「追加失敗」列に記載してくれるようにしたいのですがうまくいきません。。
そして、おそらく検索結果から対象を検索してくれているのでしょうが、1分、2分時間がかかってしまうのが嫌です。。

また、エラーが出ているのは検索結果に対象がない場合です。その場合、以下のようなエラーが出ます。
そしてこちらは4分くらい時間がかかっている印象です。。


22.10.4+Branch.support-v22.10.Sha.b4be88e3b45fb05c4bcd71885c763d4f2095f959

ソース: データ テーブルを Excel に書き込み

メッセージ: Range クラスの SpecialCells メソッドが失敗しました。

例外の型: UiPath.Excel.ExcelException

UiPath.Excel.ExcelException: Range クラスの SpecialCells メソッドが失敗しました。 —> System.Runtime.InteropServices.COMException: Range クラスの SpecialCells メソッドが失敗しました。 at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object providedArgs, ParameterModifier modifiers, CultureInfo culture, String namedParams)
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Object aArgs, Boolean aArgsIsByRef, Int32 aArgsWrapperTypes, Type aArgsTypes, Type retType)
at Microsoft.Office.Interop.Excel.Range.SpecialCells(XlCellType Type, Object Value)
at UiPath.Excel.WorkbookApplication.<>c__DisplayClass47_1.b__1()
at UiPath.Excel.ExcelContextHelper.Execute[T](Func1 func, ExcelContext context, Object[] contextParams) --- End of inner exception stack trace --- at UiPath.Excel.ExcelContextHelper.Execute[T](Func1 func, ExcelContext context, Object contextParams)
at UiPath.Excel.WorkbookApplication.XlObject[T](Func`1 func, T& excelObject, ExcelContext context, Object contextParameters)
at UiPath.Excel.WorkbookApplication.EnsureAllCellsAreVisibleOrThrow(DataTable data, Range startRange)
at UiPath.Excel.WorkbookApplication.WriteRange(String range, DataTable data, Boolean includeHeaders)
at UiPath.Excel.Activities.Business.WriteRangeX.<>c__DisplayClass20_0.b__0()
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
— End of stack trace from previous location —
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
— End of stack trace from previous location —
at UiPath.Excel.Activities.Business.WriteRangeX.ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
at UiPath.Shared.Activities.AsyncTaskCodeActivityImplementation.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at UiPath.Shared.Activities.AsyncTaskCodeActivity.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
— End of stack trace from previous location —
at UiPath.UIAutomationNext.Activities.NApplicationCard.OnFault(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.Invoke(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.FaultWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
— End of stack trace from previous location —
at UiPath.UIAutomationNext.Activities.NApplicationCard.OnFault(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.Invoke(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.FaultWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)

よろしくお願いいたします!!