• 締切済み

ExcelVBA 実行時エラー

お疲れ様です。 下記のExcelVBAでのプログラムなのですが、 なぜかいつもSelection.PasteSpecial Paste:=xlValuesの部分にデバック表示が出てしまいます。分かる方、少しのヒントでも良いので連絡ください。ちなみにプログラムは1997年にかかれたものです。 本当に困っています。宜しくお願い致します~。 ~~~~~~~~~~~~~~~~~~~~~~~~ Dim Bu, D_in, D_Copy As String D_Copy = ActiveSheet.Name 'マクロ実行Sheet(データ入力Sheetをコピー) Bu = Mid(D_Copy, 3, 3) '部コードを抽出 D_in = ("D-" & Bu) 'データ入力Sheet Msg = "前月データを複写してもよろしいですか?" Msg_ret = MsgBox(Msg, vbYesNo) If Msg_ret = vbNo Then End Else End If 'マクロ実行Sheetのデータをクリアする Range("Clear").Select Selection.ClearContents '上代売上単月データを一覧表にコピー Sheets(D_in).Select Select Case Month(Date) Case 4 Range("JT1,JT2").Copy Case 5 Range("JT3,JT4").Copy Case 6 Range("JT5,JT6").Copy Case 7 Range("JT7,JT8").Copy Case 8 Range("JT9,JT10").Copy Case 9 Range("JT11,JT12").Copy End Select Sheets(D_Copy).Select Range("B6").Select Selection.PasteSpecial Paste:=xlValues '在庫単月データを一覧表にコピー Sheets(D_in).Select Select Case Month(Date) Case 4 Range("Za1,Za2").Copy Case 5 Range("Za3,Za4").Copy Case 6 Range("Za5,Za6").Copy Case 7 Range("Za7,Za8").Copy Case 8 Range("Za9,Za10").Copy Case 9 Range("Za11,Za12").Copy End Select Sheets(D_Copy).Select Range("AD6").Select Selection.PasteSpecial Paste:=xlValues '上代売上累計データを一覧表にコピー ' 9月と3月はマクロの実行なし Sheets(D_in).Select Select Case Month(Date) Case 4 Sheets(D_Copy).Select Range("A6").Select End Case 5 Range("Ru1,Ru2").Copy Case 6 Range("Ru3,Ru4").Copy Case 7 Range("Ru5,Ru6").Copy Case 8 Range("Ru7,Ru8").Copy Case 9 Range("Ru9,Ru10").Copy End Select Sheets(D_Copy).Select Range("B52").Select Selection.PasteSpecial Paste:=xlValues End End Sub

みんなの回答

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.1

実行して Selection.PasteSpecial Paste:=xlValues でエラーになるのは、ペーストするのにコピーしてないからです。 コピーは Select Case Month(Date) からしますが、4月~9月それぞれの範囲をコピーするようなってますので、今は2月なのでここはとばされてしまいます。 一番問題なのは、 Range("JT1,JT2").Copy でJT1とかないので、たとえ4月~9月でもここでエラーになります。 "JT1,JT2"をそれぞれのセルの範囲を指定し直せば、動くと思います。

hahaharuki
質問者

補足

早速のご回答ありがとうございます。返信が遅くなり申し訳ございませんでした。 セルの範囲ですが、10個ぐらいEXCELの表が一つのシートに幾つかあり、それぞれの表からその月の数値を持ってくるように作りたいと思っています。 その場合、EXCELのセルの範囲はどのようにすれば宜しいのでしょうか?また、このようなときに使えるプログラムはございますでしょうか?もしご存知でしたら教えてください。 VBA超初心者で申し訳ございませんが、何卒宜しくお願い致します。

関連するQ&A