画像: フォーミュラと範囲エリア
したがって、数式で範囲 $E$27:$S$42 をカウントしたいのですが、マクロが実行されるたびに、数式で参照される範囲が 1 列ずつ減少します。マクロが変更を行った後、範囲 $E$27:$S$42 を維持するにはどうすればよいですか?
(マクロは古い週を削除し、列 R をコピーして新しい将来の週を追加します)。VBA は、示されているものと同様の 20 個のブロックにこれらの変更を加えるための for ループです。
コード:
Sub DeleteAndAddWeek()
Dim i As Integer
For i = 22 To 617 Step 22
DoEvents
'Select Sheet
Sheets("Entry Sheet").Select
'Delete Old Date in Column E
Range(Cells(i + 1, 5), Cells(i + 20, 5)).Delete Shift:=xlToLeft
'Copy column R to Column S (new Week)
Range(Cells(i + 1, 18), Cells(i + 20, 18)).AutoFill Destination:=Range(Cells(i + 1, 18), Cells(i + 20, 19)), Type:=xlFillDefault
Range(Cells(i + 5, 19), Cells(i + 20, 19)).ClearContents
'Copy dates into Overview Sheet
Range(Cells(23, 5), Cells(23, 19)).Copy
Sheets("Team Forecast Overview").Select
Range("D2:R2").PasteSpecial xlPasteValues
'Copy summary rows into Overview Sheet
Sheets("Entry Sheet").Select
Range(Cells(i + 2, 5), Cells(i + 2, 19)).Copy
Sheets("Team Forecast Overview").Select
Range(Cells(((i / 22) + 2), 4), Cells(((i / 22) + 2), 18)).PasteSpecial xlPasteValuesAndNumberFormats
Next i
End Sub