Page 826 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼指定された列を別シートに貼付する時にエラー... minime 03/3/5(水) 13:48 ┗Re:指定された列を別シートに貼付する時にエ... パピー 03/3/5(水) 14:15 ┣Re:指定された列を別シートに貼付する時にエ... Jaka 03/3/5(水) 14:46 ┃ ┣Re:指定された列を別シートに貼付する時にエ... Jaka 03/3/5(水) 15:02 ┃ ┗Re:指定された列を別シートに貼付する時にエ... minime 03/3/5(水) 15:04 ┗Re:指定された列を別シートに貼付する時にエ... minime 03/3/5(水) 14:56 ─────────────────────────────────────── ■題名 : 指定された列を別シートに貼付する時にエラー... ■名前 : minime ■日付 : 03/3/5(水) 13:48 -------------------------------------------------------------------------
今回投稿するのは2回目です。少しだけ長い文章ですがよろしくお願いします。 ・左から順にsheet1,sheet2,sheet3,sheet4,sheet5のシートがあり、sheet5に下記の 値が入力されています。 |A B C D E -|---------------------------------------------- 1| X | 2|あ い う え お | 3| 0 E 0 0 0 | 4| 0 A 0 0 0 | 5| 0 B 0 0 0 | 6| 0 C 0 0 0 | 7| 0 D 0 0 0 | ・sheet5以外は下記の内容が入力されています。 |A B C D E -|---------------------------------------------- 1| X | 2|あ い う え お | ・この状態で、下記のマクロを実行したのですが、----? のところで「実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。」というエラーメッセージが出てしまいま す。コード自体は間違ってないように思うのですが、どうしてもわかりません。 レスいただければ、幸いです。 //------------------------------------------------------------------ Dim 最終行, 最終行2, 最終行3, 最終行4, 最終行5 As Integer Dim i As Integer Sheets("sheet5").Select Selection.CurrentRegion.Select 最終行 = Selection.Rows.Count For i = 3 To 最終行 If cells(i, 2).Value <> "A" Then If cells(i, 2).Value <> "B" Then If cells(i, 2).Value <> "C" Then If cells(i, 2).Value <> "D" Then Rows(i).Select Selection.Copy Sheets("sheet1").Select Range("A1").Select Selection.CurrentRegion.Select 最終行5 = Selection.Rows.Select cells(最終行5 + 1, 1).Select '----------? ActiveSheet.Paste Sheets("sheet5").Select Else Rows(i).Select Selection.Copy Sheets("sheet2").Select Range("A1").Select Selection.CurrentRegion.Select 最終行4 = Selection.Rows.Select cells(最終行4 + 1, 1).Select ActiveSheet.Paste Sheets("sheet5").Select End If Else Rows(i).Select Selection.Copy Sheets("sheet3").Select Range("A1").Select Selection.CurrentRegion.Select 最終行3 = Selection.Rows.Count cells(最終行3 + 1, 1).Select ActiveSheet.Paste Sheets("sheet5").Select End If Else Rows(i).Select Selection.Copy Sheets("sheet4").Select Range("A1").Select Selection.CurrentRegion.Select 最終行2 = Selection.Rows.Count cells(最終行2 + 1, 1).Select ActiveSheet.Paste Sheets("sheet5").Select End If End If Next //------------------------------------------------------------------- |
▼minime さん:こんにちは。 > 最終行5 = Selection.Rows.Select > cells(最終行5 + 1, 1).Select '----------? 最終行5の値はいくつになっているでしょうか? マイナス(−)になったりしているのでは? 上の2行の間に debug.print 最終行5 を挿入して実行してみて下さい。 結果がVBEのイミディエイトウィンドウに表示されます。 確認してみて下さい。 外していたら、ごめんなさい。 |
こんにちは。 >cells(最終行5 + 1, 1).Select ↑これよりも >最終行5 = Selection.Rows.Select こっちの方がおかしくないですか? このせいで、変数「最終行5」に値が入っていません。Trueがはいっていました。 Range("A1").Select Selection.CurrentRegion.Select 最終行5 = Selection.Rows.Select ↓ Range("A1").CurrentRegion.Select 1つのコードに出来ます。 最終行5 = Selection.Rows.Count 全部合わせて、これでも良いです。 With Range("A1").CurrentRegion 最終行5 = .Cells(.Count).Row End With |
>With Range("A1").CurrentRegion > 最終行5 = .Cells(.Count).Row >End With A1と1行目基準だったんで、これで十分でした」。 MsgBox Range("A1").CurrentRegion.Rows.Count |
▼Jaka さん: >こんにちは。 >>cells(最終行5 + 1, 1).Select >↑これよりも > >>最終行5 = Selection.Rows.Select >こっちの方がおかしくないですか? >このせいで、変数「最終行5」に値が入っていません。Trueがはいっていました。 > > >Range("A1").Select >Selection.CurrentRegion.Select >最終行5 = Selection.Rows.Select > > ↓ > >Range("A1").CurrentRegion.Select 1つのコードに出来ます。 >最終行5 = Selection.Rows.Count > >全部合わせて、これでも良いです。 > >With Range("A1").CurrentRegion > 最終行5 = .Cells(.Count).Row >End With まったくその通りです。わたしの単純なミスでした。(はずかし〜 ^_^;) また、プラスアルファのご教示もいただき、ありがとうございました。 |
▼パピー さん: >▼minime さん:こんにちは。 > >> 最終行5 = Selection.Rows.Select >> cells(最終行5 + 1, 1).Select '----------? > >最終行5の値はいくつになっているでしょうか? >マイナス(−)になったりしているのでは? > >上の2行の間に > debug.print 最終行5 >を挿入して実行してみて下さい。 >結果がVBEのイミディエイトウィンドウに表示されます。 >確認してみて下さい。 > >外していたら、ごめんなさい。 ヒントをありがとうございました。 |