0

画像: フォーミュラと範囲エリア

フォーミュラとレンジエリア

したがって、数式で範囲 $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
4

0 に答える 0