シート名を変数に格納するために、stringの型を使用するとエラーとなってしまいます。
過去の質問内容から真似をしてみましたが、上手くいきません。
どうやらstringの後にが付いているようですが、どうやっても変換方法が分からず、ご教示下さい。
シート名を変数に格納するために、stringの型を使用するとエラーとなってしまいます。
過去の質問内容から真似をしてみましたが、上手くいきません。
どうやらstringの後にが付いているようですが、どうやっても変換方法が分からず、ご教示下さい。
mairin さん
こんにちは。
まず、変数:allsheetsのVariable type が【String】となっている点。
これは意図的に”文字列の配列”として宣言したのでしょうか?
「このデータを」「この型の」「この変数に」「この型に変換して格納したい」と
より具体的に質問すると、回答が得られると思います。
@nk_tecroom さんのに補足で。
String というのは、 String型の値を複数束ねたデータ、という意味になります。(書かれている「配列」というのがそれです)
ExcelのWorksheetは複数存在することもあるので、何かしらの方法(Activity?)でシート名を取得すると、個々のシート名が入ったStringの配列になることは十分にあり得ます。
……というか、取得の方法に関してはちょっと身に覚えがあるのですが、それはそれ。
String から値を取り出す方法としては、
あたりが無難かと思いますので、試してみてください。
アドバイスありがとうございます。
データの詳細ですが、エクセルデータのシート名(1シートしかありません)を
変数に格納して、それを基にシート内の各セルに関数を打ち込んでいくイメージです。
実際、エラーが出ているので、1シートしかない場合でもstringの複数データの型が必要なのでしょうか。
以下、現在私が作成中のフローです。
変数のWBは、Excel application scopeのアウトプットで作成したものです。
過去に取得方法が記載してあるフォーラムを見つけましたが、上手くいかないようです。。。
https://forum.uipath.com/t/excel-sheet-name/23570/2
GetSheets関数を用いてファイル名の一覧を取得していますが、
この関数は複数シート名を一括で戻すことを想定しているので、文字列型の配列をもどす仕様になっていますね。(String で受けないとエラーになる)
例えば、sheet1,sheet2,sheet3というシートがあるブックに対しては、
{ “Sheet1”,“Sheet2”,“Sheet3” }という形で戻ります。
で、@mairinさまご認識のとおり、「1シートしか戻さなくても」複数データ型必要です。
上の例で言うと、{ “Sheet1” }として戻ります。
業務仕様上、必ず1個しかシートが無いのであれば、
Sheet String と定義して、
使うほうは、
Sheet(0)
と、必ず最初の要素を使用することで対応できると思います。
回答ありがとうございます。
仰るとおり、業務上必ず1シートのみでデータが送られてきます。
しかし、stringの複数型がvariable typeの選択欄に無く、変更が出来ない状態です。
手動で作成は出来ないのでしょうか。
重ね重ね申し訳ございませんが、ご教示頂けないでしょうか。
(ctrl+Kはジェネリック型となってしまいます)
変数パネルで、Array of [T] を一旦選択して、
その後表示される [Select Types]ダイアログで[String]を選んでみてください。できるはずです。
必ず最初のシート、と決まっているなら、Assignの右辺を
WB.GetSheets(0)
のように指定すれば、0番目(最初)の値を配列ではないString型としてとれるはずです。