セル内の文字の編集

C列にある数値(例:X210003456)からXを取り除いて、N列に貼り付けたいです。


範囲を読み込むでC1:C1000を変数Colに格納、代入でCol.tostring.remove(0,1)でXを除く、
セルに書き込みでN2から1000セルを貼り付ける
というイメージで作りました。

しかし、以下エラーが出ています。上記のことを実現させるにはどのような変更が必要かご助言頂けないでしょうか。

ソース: 代入

メッセージ: インデックスおよびカウントは文字列内の場所を参照しなければなりません。
パラメーター名:count

例外の型: System.ArgumentOutOfRangeException

RemoteException wrapping System.ArgumentOutOfRangeException: インデックスおよびカウントは文字列内の場所を参照しなければなりません。
パラメーター名:count
場所 System.String.Remove(Int32 startIndex, Int32 count)
場所 lambda_method(Closure , ActivityContext )
場所 Microsoft.VisualBasic.Activities.VisualBasicValue1.Execute(CodeActivityContext context) 場所 System.Activities.CodeActivity1.InternalExecuteInResolutionContext(CodeActivityContext context)
場所 System.Activities.Runtime.ActivityExecutor.ExecuteInResolutionContext[T](ActivityInstance parentInstance, Activity1 expressionActivity) 場所 System.Activities.InArgument1.TryPopulateValue(LocationEnvironment targetEnvironment, ActivityInstance activityInstance, ActivityExecutor executor)
場所 System.Activities.RuntimeArgument.TryPopulateValue(LocationEnvironment targetEnvironment, ActivityInstance targetActivityInstance, ActivityExecutor executor, Object argumentValueOverride, Location resultLocation, Boolean skipFastPath)
場所 System.Activities.ActivityInstance.InternalTryPopulateArgumentValueOrScheduleExpression(RuntimeArgument argument, Int32 nextArgumentIndex, ActivityExecutor executor, IDictionary2 argumentValueOverrides, Location resultLocation, Boolean isDynamicUpdate) 場所 System.Activities.ActivityInstance.ResolveArguments(ActivityExecutor executor, IDictionary2 argumentValueOverrides, Location resultLocation, Int32 startIndex)
場所 System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

こんにちは

範囲読み込みの結果はDataTable型で返ってきますので
それにあったハンドリングが必要です。
オーソドックスには以下のようになるかと思います。

Yoichi様

いつもご対応ありがとうございます。
同様にしてみたのですが、以下エラー発生します。
代入: インデックスおよびカウントは文字列内の場所を参照しなければなりません。
パラメーター名:countエラーの意味が分からず、どうすればよいのかが不明です。
ご教授頂けないでしょうか?

2021年8月24日(火) 12:11 Yoichi via UiPath Community Forum <uipath@discoursemail.com>:

こんにちは

対象データのなかに空欄(空文字列)があるのではないかと思います。
条件分岐で、空欄の場合は処理を行わないようにしてみてください。

img20210825-2

Yoichi様

報告遅れました。
無事に処理は完了しました!

別問題なのですが、一文字目を消す処理を行う値がX01234576のように、Xの後ろに0が付与されているものがります。
(X89765のように0がないものもあります。)
そのため、処理が完了するとExcelに書き込まれた値が数値型になり、0が先頭のものは消去されてしまいます。
そこで、row(0).tostring.Insert(0,"’")をremoveの前に追加し、アポストロフィーを付与しました。
しかし、書き込み処理をするとアポストロフィーが消えておりうまくいきません。

追加の質問となりますが、Xの消去後に先頭になる0が消えないようにするにはどうしたらよいでしょうか?

2021年8月25日(水) 10:33 Yoichi via UiPath Community Forum <uipath@discoursemail.com>:

こんにちは

別の質問になるようでしたら、別トピックを立てたほうが良いかと思います。

そこで、row(0).tostring.Insert(0,"’")をremoveの前に追加し、アポストロフィーを付与しました。

removeの前に追加すると、removeで除去されると思うので、後が適切ではないでしょうか?

ご連絡ありがとうございます。
アドバイス試してみます。追加アドバイス頂きたいときは別質問で行います。

ありがとうございました。

2021年9月6日(月) 12:07 Yoichi via UiPath Community Forum <uipath@discoursemail.com>: