マクロを使用して下記繰り返し作業を自動化することを考えています。
条件
0. 契約日~解約日まで1が月ごとに'別シート'に元シートのA2~AB2値を自動にコピー&ペースト
0. A3~AB3の場合も同様に契約日~解約日(解約日の値がない場合は今日まで繰り返す)まで1カ月ごとに'別シート'にレコード自動作成を繰り返す
例えばA2の場合2013/8,2013/9/,2013/10,2013/11...2021/2の様に契約日~今日まで1が月ごとに'別シート'に契約レコード自動作成
下記VBAを実装した所、添付画像の通りエラーが発生しておりエラーの解決方法についてご教示いただけますと幸いです。
元シート
発生したエラー
デバッグ結果
コード
VBA
1Sub Sample2() 2 Dim moto As Worksheet 3 Dim lastRow, i 4 Set moto = Sheets("元シート") 5 lastRow = moto.Cells(Rows.Count, 2).End(xlUp).Row 6 Dim saki As Worksheet, outRow As Long 7 Set saki = Sheets.Add(, moto) 8 moto.Range("A1:AB1").Copy saki.Range("A1:AB1") 9 outRow = 2 10 For i = 2 To lastRow 11 Dim startDate As Date 12 Dim endDate As Date 13 Dim repeatCount As Long 14 startDate = moto.Cells(i, 4) 15 If IsEmpty(moto.Cells(i, 5)) Then 16 endDate = Date 17 Else 18 endDate = moto.Cells(i, 2) 19 End If 20 repeatCount = DateDiff("m", startDate, endDate) 21 Dim j As Long 22 For j = 0 To repeatCount 23 saki.Cells(outRow, 1) = DateAdd("m", j, moto.Cells(i, 1)) 24 saki.Cells(outRow, 2) = moto.Cells(i, 2) 25 saki.Cells(outRow, 3) = moto.Cells(i, 3) 26 saki.Cells(outRow, 4) = moto.Cells(i, 4) 27 saki.Cells(outRow, 5) = moto.Cells(i, 5) 28 saki.Cells(outRow, 6) = moto.Cells(i, 6) 29 saki.Cells(outRow, 7) = moto.Cells(i, 7) 30 saki.Cells(outRow, 8) = moto.Cells(i, 8) 31 saki.Cells(outRow, 9) = moto.Cells(i, 9) 32 saki.Cells(outRow, 10) = moto.Cells(i, 10) 33 saki.Cells(outRow, 11) = moto.Cells(i, 11) 34 saki.Cells(outRow, 12) = moto.Cells(i, 12) 35 saki.Cells(outRow, 13) = moto.Cells(i, 13) 36 saki.Cells(outRow, 14) = moto.Cells(i, 14) 37 saki.Cells(outRow, 15) = moto.Cells(i, 15) 38 saki.Cells(outRow, 16) = moto.Cells(i, 16) 39 saki.Cells(outRow, 17) = moto.Cells(i, 17) 40 saki.Cells(outRow, 18) = moto.Cells(i, 18) 41 saki.Cells(outRow, 19) = moto.Cells(i, 19) 42 saki.Cells(outRow, 20) = moto.Cells(i, 20) 43 saki.Cells(outRow, 21) = moto.Cells(i, 21) 44 saki.Cells(outRow, 22) = moto.Cells(i, 22) 45 saki.Cells(outRow, 23) = moto.Cells(i, 23) 46 outRow = outRow + 1 47 Next 48 Next 49 With saki.UsedRange 50 .EntireColumn.AutoFit 51 End With 52End Sub```
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。