別のデータテーブルから列をコピーしたい

UiPath初心者です。

アクティビティ 「データ列を追加」 を使い、別のデータテーブルから列をコピーできるという内容の記事を目にしたので以下の通り作ってみたのですが、
エラーとなりました。
解決策を教えて頂きたくよろしくお願いいたします。

image

この列には、独立したデータの列(DataColumn)を設定します。他のテーブルのそれを指定できません。

他のDataTableの名称、型などを模倣したいのでしたら、
1)DataTable.Cloneで列情報をコピーする
2)DataColumnのコンストラクターを使用する(New DataColumn(“列名”)など)

をご参考に。。。。

なお、列をコピーしても、列の定義だけで、列の値はコピーされません

1 Like

おはようございます。
ありがとうございます。

列のコピーと言うのは、列の値までコピーすると思っていたのですが、甘かったのですね。。
違う方法が必要とのこと、ありがとうございます。

「データテーブルをマージ」アクティビティを応用できますよ

1 Like

お疲れ様です。
先生!もう少し詳しくお願いします😢

コピー先のDataTableに、コピーしたい列(例えばA)の定義をしておきます。データ行は0とします。

コピー元に、A列とB列があったとして。。。

データテーブルのマージをするときのモードで
Addの場合は、コピー先に存在しないB列も、コピー先のDataTableにコピーされます
Ignoreの場合は、コピー先に存在しないB列は無視されます。

これを応用して、レイアウト変更させたりできます。

気を付けなければならないのは、同じ列名が存在しても、列の属性が異なっている場合ですね。実行時に異常終了します(その組み合わせパタンはいずれ検証する予定(^^♪)

1 Like

ありがとうございます。

仰るエラーになってしまったようです。
列の追加でコピー先へ列をdatatable型の列を追加し、マージしたつもりなのですが、
以下のエラーです。
解決策、分かりますでしょうか。
image

データ列を追加の属性が、DataTableではなく、Stringではないかと思うのですが。。。

1 Like

ありがとうございます。
データ列を追加のプロパティの
その他 TypeArgument がデータテーブルになっているのに、実はstringになってしまうということですか?

データテーブルの列の属性に、「DataTable」を指定するのが良くないって事です。
EXCELのセルに、EXCELを入れてしまうような事ですから。

1 Like

そうなんですか!!
何も指定しないobject型にしたら良いということでしょうか。

コピー元の列の属性に合わせた方が安全ですね

1 Like

なるほどです。
ありがとうございます。

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