自動レポートを作成するマクロ(レポートシートの名前は「RCCP INPUT」)を作成し、別の行からデータを抽出しますワークシート(「CW33 17」という名前の出典)。私は、ソースシートの単一の行のために実行するコードをビルドしたので、1行だけのためのレポートを作成します(すべての行は注文を表します)。さまざまな行のレポートを作成したいので、ある範囲の行を適用するためにコードを拡張する必要があります。したがって、この範囲はmyRangeと呼ばれ、2から70までの行が含まれています。したがって、レポートにはこれらの行がすべて含まれている必要があります。私のコードは以下の通りです。私はヘッダーも含めているので、レポートは2行目から開始します。マクロが実行される行は今のところ2行目です。レポートをより明確にするために、ソースから選択された各行に6を掛けなければなりません予測列と予測数量列では、各注文(行)が6週間の値を持たなければならないため、下のマクロから見ることができるように、6個のコピー(下に1つずつ)が必要です。私はそれを明確にしたことを願っています!どのようにそれを動作させるためにどのようなアイデア?..私はこれまでに惨めに失敗しました..多くの感謝!単一行で実行されるコードの行範囲のループを作成する
レポートは次のようになります(1つの行には6が掛けられるため)、他の行は同じように下に配置されます。あなたは何とか絶対アドレスから離れて移動する必要があなたのコードを一般化するために
Sub RCCP_INPUT()
Sheets("RCCP INPUT").Select
range("C1").Value = "T-Lane ID" 'Column C
range("D1").Value = "Week of RCCP" 'Column D
range("E1").Value = "Forecast" 'Column E
range("F1").Value = "Forecast Quantity" 'Column F
Sheets("CW33 17").Select
range("D2:E2").Copy
Sheets("RCCP INPUT").Select
range("A2").Select
ActiveSheet.Paste
Dim rws As Long
With range("A2:B2")
rws = .Rows.Count
.Resize(rws).Copy Destination:=.Offset(rws).Resize(rws * 5)
End With
range("C2").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-2],RC[-1])"
ActiveCell.Value = ActiveCell.Value
With range("C2")
rws = .Rows.Count
.Resize(rws).Copy Destination:=.Offset(rws).Resize(rws * 5)
End With
Sheets("CW33 17").Select
range("G2:L2").Select
Selection.Copy
Sheets("RCCP INPUT").Select
range("F2:F7").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Sheets("RCCP INPUT").Select
i = 1
For Each cell In range("E2:E7")
cell.Value = "Week +" & i
i = i + 1
Next cell
Sheets("RCCP INPUT").Select
range("E2").Value = Sheets("CW33 17").range("G2").Value - 1
With range("E2")
rws = .Rows.Count
.Resize(rws).Copy Destination:=.Offset(rws).Resize(rws * 5)
End With
End Sub
」私は今までに悲惨に失敗しました。 "あなたのプロフィールを見ると、あなたはほとんど答えを受け入れません。 – cyboashu
私はあなたが私の答えをこのコードで使っているのを見ています。しかし、あなたは私の答えを受け入れませんでした。 –
@ScottCraner私はコメントをupvoted :)それは本当に役立った!アップ票する以外にどうすればいいですか? –