Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12477 / 13645 ツリー ←次へ | 前へ→

【10292】'Cells'メソッド sa 04/1/16(金) 10:13 質問
【10293】Re:'Cells'メソッド INA 04/1/16(金) 11:13 回答
【10296】Re:'Cells'メソッド sa 04/1/16(金) 12:37 質問
【10297】Re:'Cells'メソッド Jカーター 04/1/16(金) 13:13 回答
【10306】Re:'Cells'メソッド しのしの 04/1/17(土) 0:11 回答
【10330】Re:'Cells'メソッド sa 04/1/19(月) 11:00 お礼

【10292】'Cells'メソッド
質問  sa  - 04/1/16(金) 10:13 -

引用なし
パスワード
     Sheets(1).Select
   hen = Range(Cells(2, 2), Cells(52, n + 1)).Value
   Range(Cells(2, 20), Cells(52, n + 19)).Value=hen


上記(一部分)を実行させた時に

'Cells'メソッドは失敗しました:'_Global'オブジェクト

のエラーが出るパソコンがあります
なぜでしょうか?
対策があれば教えて下さい

【10293】Re:'Cells'メソッド
回答  INA  - 04/1/16(金) 11:13 -

引用なし
パスワード
   hen は配列ですよね?

配列の展開はループ処理を使ったりします。

でも、この場合は、copyメソッドで良いのでは?

【10296】Re:'Cells'メソッド
質問  sa  - 04/1/16(金) 12:37 -

引用なし
パスワード
   INA さん ありがとうございます

質問の意図が明確でなくすみません
'Cells'メソッドは失敗しました:'_Global'オブジェクト
のエラーについての対策が知りたいのですが
宜しくお願いします


▼sa さん:
>  Sheets(1).Select
>   hen = Range(Cells(2, 2), Cells(52, n + 1)).Value
>   Range(Cells(2, 20), Cells(52, n + 19)).Value=hen
>
>
>上記(一部分)を実行させた時に
>
>'Cells'メソッドは失敗しました:'_Global'オブジェクト
>
>のエラーが出るパソコンがあります
>なぜでしょうか?
>対策があれば教えて下さい

【10297】Re:'Cells'メソッド
回答  Jカーター  - 04/1/16(金) 13:13 -

引用なし
パスワード
   ▼sa さん:
こんにちは。
とりあえず
Selectして,シートを指定しない書き方はやめて
シートを指定して書きましょう。
(こっちの方が普通の書き方です)
------------------------------------------------------------------------
  With Sheets(1)
    hen = .Range(.Cells(2, 2), .Cells(52, n + 1)).Value
    .Cells(2, 20).Resize(UBound(hen, 1), UBound(hen, 2)).Value = hen
  End With

これでも駄目な場合は
駄目なパソコンと動くパソコンの違いを調べてはどうですか?

ちなみに配列をセルに展開するのにループはいらないと思います。

【10306】Re:'Cells'メソッド
回答  しのしの  - 04/1/17(土) 0:11 -

引用なし
パスワード
   >'Cells'メソッドは失敗しました:'_Global'オブジェクト
このメッセージについては存じませんし、単なる思いつきですが。

該当マシンの使用可能のメモリが少なく、
EXCELのブック自体も大容量で、
この前処理でもずいぶんメモリを喰う処理を実行し、
たまたま、でかいvariantの領域を確保しようとして失敗した、
ということもあるかな?と。
(果たしてその時にこのメッセージがでるのかは知らない)
お邪魔しました。

でも、INAさんのおっしゃるように、
コピーメソッドも試してみたらどうですか?
ERRがなくなったら儲かりもんだし、
ERRメッセージが替われば、ERRの原因も特定できるかもしれませんよ。

ちなみに、Jカーターさんをまねたら、私の書き方はこうです。
  With Sheets(1).Cells(2, 2).Resize(51, n - 1)
    .Offset(, 17).Value = .Value
  End With
できれば、Sheets(1)というのも使いたくないなぁ。
シート順が替われば、インデックスも変化するので。

【10330】Re:'Cells'メソッド
お礼  sa  - 04/1/19(月) 11:00 -

引用なし
パスワード
   Jカーターさん,しのしの さん有難うございました
原因がわかりました
 使用先ファイルのシートをactiveにしたときに
 グラフがselectされていたためERRが出てたみたいです
いろいろ有難うございました
またよろしくお願いします


▼しのしの さん:
>>'Cells'メソッドは失敗しました:'_Global'オブジェクト
>このメッセージについては存じませんし、単なる思いつきですが。
>
>該当マシンの使用可能のメモリが少なく、
>EXCELのブック自体も大容量で、
>この前処理でもずいぶんメモリを喰う処理を実行し、
>たまたま、でかいvariantの領域を確保しようとして失敗した、
>ということもあるかな?と。
>(果たしてその時にこのメッセージがでるのかは知らない)
>お邪魔しました。
>
>でも、INAさんのおっしゃるように、
>コピーメソッドも試してみたらどうですか?
>ERRがなくなったら儲かりもんだし、
>ERRメッセージが替われば、ERRの原因も特定できるかもしれませんよ。
>
>ちなみに、Jカーターさんをまねたら、私の書き方はこうです。
>  With Sheets(1).Cells(2, 2).Resize(51, n - 1)
>    .Offset(, 17).Value = .Value
>  End With
>できれば、Sheets(1)というのも使いたくないなぁ。
>シート順が替われば、インデックスも変化するので。

12477 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free