列 Z の分散を計算するスプレッドシートがあります。月末に値をコピーして同じスプレッドシートの別の列に貼り付け、月ごとの分散を追跡したいと考えています。
列 Z から列 BK にコピーするマクロがあります。
マクロを実行するたびに、列 Z から値をコピーし、次のスケジュールを使用して新しい列に貼り付けたいと思います。
- 月 1 = 列 BK に値を貼り付ける必要があります
- 月 2 = 列 BL に値を貼り付ける必要があります
- 月 3 = 列 BM に値を貼り付ける必要があります
- 月 4 = 列 BN に値を貼り付ける必要があります
- 月 5 = 列 BO に値を貼り付ける必要があります
- 月 6 = 列 BP に値を貼り付ける必要があります
- 月 7 = 列 BQ に値を貼り付ける必要があります
- 月 8 = 列 BR に値を貼り付ける必要があります
- 月 9 = 列 BS に値を貼り付ける必要があります
- 月 10 = 列 BT に値を貼り付ける必要があります
- 月 11 = 列 BU に値を貼り付ける必要があります
- 月 12 = 列 BV に値を貼り付ける必要があります
12回目の繰り返しの後、列Zの値を列BK(開始点)にコピーしたいと思います。これはループを使用して実行できると思いますか?
ループ ロジック/コーディングを思いつくのに苦労しています。
Sub copyCurrentToPrevious()
Dim ans As String
On Error Resume Next
Application.ScreenUpdating = False
Sheets("Direct Materials").Activate
ans = MsgBox("Are you sure you want to copy Previous Month Variance to YTD Variance Tracking? This action can not be undone." & vbNewLine _
& vbNewLine & "Select Yes to proceed with the copy/paste operation or Select No to cancel.", vbYesNo + vbExclamation, "Product Costing")
If ans = vbNo Then Exit Sub
Range("Z9:Z220").Copy
Range("BK9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("Z226:Z306").Copy
Range("BK226").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("Z311:Z471").Copy
Range("BK311").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("Z476:Z524").Copy
Range("BK476").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
MsgBox "Copy / paste operation is complete. Select OK to continue.", vbOKOnly + vbInformation, "Product Costing"
Application.ScreenUpdating = True
End Sub