範囲の読み込みで「範囲がありません」と出てしまう

エクセルからデータを読み取りデータテーブル型変数に格納したいです。
ですが、特定のエクセルブックだけ、シート名や範囲設定など正しいはずなのにエラーが出てしまいます
エクセル側の設定で何か問題がございますか?
【状況】
・特定のブックではブックの保護がパスワードでかけられている
・読み込みスタート地点はD55セルからデータがある最後の行まで なので設定は「D55」のみ
・読み取りたい範囲の部分はセル結合が行われており、C55D55E55が一つのセルになっている
・別ブックでセル結合などの書式をコピーし、範囲読み込みを設定するとうまく読み取れる

どのようなエラーになりましたか?

検証されたことの差で考えると、シートの保護が問題になりそうですね。。。

と思ってやってみましたが、エラーにはなりませんでした。。。

お使いのUiPath.Excel.Activitiesのバージョンが、2.8.5又は2.8.6でしたら、2.7.2又は2.9.3を使用すると動作するかもしれません。

ご連絡ありがとうございます。
仕事の都合でバージョンが更新できず・・・申し訳ないです。

エラー内容としては範囲が存在しません と出てきます

ブックとシートの両方に保護がかかっているのが原因かな・・・と僕のほうでも想定しております

ちなみに全く違うエクセルで、ブックに保護つけた状態で動かしてみたところ問題なく実行できました

続報です
先ほどシートを保護したブックで同様な操作を行ったところ、範囲が存在しないとエラーが発生しました
もう少し詳細に調べてみますが、シートの保護は関係してそうですね・・・

>シート名や範囲設定など正しいはずなのにエラーが出てしまいます

「範囲を選択」アクティビティでシート名、範囲が本当にあってるか確かめてみてください。
シートの保護の影響はうけないはずです。

VBA的な話をすると、シートの最終セルを求めるのに、.UsedRangeを使うのですが、これはパスワード保護が掛かっているとエラーになります。
ですので、最終行辺りだと。Cells(Rows.count,1).End(xlup).rows.rowで最終行を求めます。

パスワード掛かっている状態で出来ると報告する人、出来ないと報告する人がいる場合、Studio、あるいはアクティビティパッケージの版数が絡むかもしれませんね。

Studioのバージョンはいくつです?
私は2020.10CEで試してみました

スタジオのバージョンは2018.4ですね

2018.4.4で再現しました!

この画面が出た時、下部の「クリップボードにコピー」をクリックし、適当なテキストエディタで開いたファイルにペーストすると、

ソース: 範囲を読み込み

メッセージ: 範囲が存在しません。

例外の種類: UiPath.Excel.ExcelException

IncludeExceptionDetailInFaults=true により作成された可能性のある ExceptionDetail の値:
UiPath.Excel.ExcelException: 範囲が存在しません。 ---->
System.Runtime.InteropServices.COMException: 保護されたシートに対して、このコマンドは使用できません。このコマンドを使用するには、まずシートの保護を解除してください ([校閲] タブの [変更] グループにある [シート保護の解除] をクリックします)。パスワードの入力を要求されることもあります。

となっていました!
2018.4レベルですと、パスワード保護がかかっているとダメなんですね。

EXCELアクティビティパックの版数を少しずつ上げていって、OKとなるレベルまでインストールですね。この場合、有事サポートは受けられないと聞いています。

一度リセラーさんに確認してみてはいかがでしょう?

1 Like