- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Do While ステートメントエラー)
VBA初心者の質問:Do While ステートメントのエラー
このQ&Aのポイント
- VBA初心者が作成したプログラムがエラーで止まってしまい、先に進めない状況です。エラーメッセージは「実行時エラー'1004' 'Range'メソッドは失敗しました:'Global'オブジェクト」と表示されます。Do While ステートメントを使用して特定の範囲のデータを他のエクセルBOOKにコピーしたいという目的ですが、どうすれば良いでしょうか。
- VBA初心者がDo While ステートメントを使用してエクセルBOOK間のデータをコピーしようとしていますが、実行時エラーが発生して先に進むことができません。エラーメッセージによると、Rangeメソッドが失敗しているようです。どのように修正すれば良いでしょうか。
- VBA初心者の私は、特定の範囲のデータを他のエクセルBOOKにコピーするためにDo While ステートメントを使用していますが、実行時エラーが発生してしまいます。「実行時エラー'1004' 'Range'メソッドは失敗しました:'Global'オブジェクト」というエラーメッセージが表示されます。このエラーを解決する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
1回目のループ終了時の「列番号=列番号+1」結果は「D」になりますか?おそらくならないと思います。エラー発生時にデバッグを押した後、列番号のところにカーソルを合わせると値表示がされるので、確認出来ます。 これが原因ならば、以下のように対策すればOKです。 Sub W() Dim ファイル名 As String Dim 列番号 As Long 列番号 = 3 Do While Cells(5,列番号).Value <> "" ファイル名 = Cells(5,列番号).Value Workbooks.Open "D:\学校\データ\" & ファイル名 & ".xlsx" Range("A2:A5").Copy ActiveWorkbook.Close ThisWorkbook.Activate ActiveSheet.Paste Cells(6,列番号) 列番号 = 列番号 + 1 Loop End Sub 要は列番号をアルファベットでなく整数に変更し、セル表現をRangeからCellsに変更します。