UiPath > For Each RowでDataTableの 行を削除できない時の対処法 (Invoke Code版)

行の削除はできない。

For Each Rowでデータテーブルの中身を回しながら、もしも指定した条件に一致しない行が存在した場合、削除することは少し手間がかかります。

For Each Rowの中でもしもデータの行数が変わってしまう場合、削除した後に行数自体が変更してしまうため、エラーになるケースが発生します。ExcelのVBAなどでもよくありますよね。

この場合、データテーブルを最後のデータテーブルか順番に削除していくと、うまくいきます。

Invoke Codeを使ってみる

Excel VBA好きな私からすると、For文とStep -1を繰り返したいですね。

Invoke Codeの詳細

Invoke Codeの中身はこんな感じです。
最初にデータテーブルの最終行から降順にFor文が回っていきます。Step -1に設定しているので、Nextでiが-1されます。

もしも、行「商品名」が「りんご」だった場合、削除していきます。

コードの引数は以下のようになっています。myDTの中身が「in/Out」になっていることに気をつけてください。

なぜInvoke Codeを使いたがるかというと、UiPathのファイルをデバッグがFor Each Rowでだと非常に重くなるからです。

ここは個人的な趣味の領域でもあります。運用/開発手順に従って、For Eachを使ってみたりしてください。

6件のフィードバック

  1. Hello there! Do you know if they make any plugins to assist with SEO?

    I’m trying to get my website to rank for some targeted
    keywords but I’m not seeing very good gains. If you know of any please share.
    Cheers! You can read similar text here: Eco bij

  2. Sugar Defender Ingredients
    Uncovering Sugar Protector has been a game-changer for me, as
    I’ve constantly been vigilant regarding managing my blood glucose degrees.
    I now feel equipped and positive in my capacity to
    keep healthy and balanced levels, and my newest
    checkup have actually shown this development. Having a credible supplement to enhance my a massive source of convenience, and
    I’m genuinely appreciative for the significant difference Sugar Defender has made in my general
    health.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

目次