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
お礼
ありがとうございました。 DataBodyRangeで表を選択して、.Item(.Count)で表全体を確認し、IsEnpty(.value)で最終行を選択したという事でしょうか? 「With」をあまり使わないので、理解するまで時間が掛かってしまいました。(まだ100%解っていない様な気もするが) 実際に動かしてみると、非常に小気味よく動きますね。レコードマクロとはぜんぜん違います。とても効率よく動いています。 大変勉強になりました。ありがとうございました。