Excel VBA質問箱 IV

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

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


9801 / 76734 ←次へ | 前へ→

【72490】Re:sheet1のデータをsheet2に整形して抽出する方法
発言  UO3  - 12/8/15(水) 22:40 -

引用なし
パスワード
   ▼タケル さん:

ループ構文の改善は、後回しにして

>
>   Sheets(2).Range(Cells(j, "A"), Cells(j + 5, "A")).MergeCells = True 'アプリケーション定義またはオブジェクト定義のエラー(上手く行く時もある)
>  
>  
>   Sheets(1).Range(Cells(i + 1, "E"), Cells(i + Y, "E")).Select 'アプリケーション定義またはオブジェクト定義のエラーが発生
>   Sheets(1).Range(Cells(i + 1, "H"), Cells(i + Y, "H")).Select

うっかりと、このような記述をしてしまい、悩む人が多いようですね。

Sheets(2).Range(

こは、Sheets(2)の領域の宣言をします。その詳細は (・・) のなかに記述していますと
こういうことを意味しています。
で、その (・・・・) の中ですが、このセルからこのセルまで こういう記述ですよね。
でも、『このセル』って、どこのシートのセルでしょうか?
Cells(i + 1, "H") も Cells(i + Y, "H")) も、どこのシートということが明示的に
示されていませんね。
こういう場合、VBAは、標準モジュールであればアクティブシート、
シートモジュールであれば、そのモジュールが属しているシートと見なします。

そうしますと、標準モジュールの場合、Sheets(2)がアクティブシートなら結果オーライですが
それ以外がアクティブになっていると、
Sheets(2)のセル領域の規定で、その詳細は、Sheets(2)以外のここからここまで。
このような矛盾のある規定になりますのでアプリケーション定義エラーとなります。
(・・・・) の中のセルにも SHeets(2). とシート修飾することが必要です。

4 hits

【72481】sheet1のデータをsheet2に整形して抽出する方法 タケル 12/8/15(水) 14:45 質問
【72484】Re:sheet1のデータをsheet2に整形して抽出... UO3 12/8/15(水) 19:54 発言
【72487】Re:sheet1のデータをsheet2に整形して抽出... タケル 12/8/15(水) 22:17 回答
【72488】Re:sheet1のデータをsheet2に整形して抽出... タケル 12/8/15(水) 22:36 お礼
【72496】Re:sheet1のデータをsheet2に整形して抽出... kanabun 12/8/16(木) 9:28 発言
【72501】Re:sheet1のデータをsheet2に整形して抽出... UO3 12/8/16(木) 15:57 発言
【72490】Re:sheet1のデータをsheet2に整形して抽出... UO3 12/8/15(水) 22:40 発言

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