VBAを初めて使用していて、範囲関数とオフセット関数の使い方を完全に理解していません。値に基づいてセルの範囲をコピーして別のシートに挿入する
ここに私が達成しようとしているものがあります。私は列 "A"から行 "4"で始まる "H"で製品と価格設定情報を持つワークシート "Sheet1"を持っています。列 "D"は入力された数量です。私はどの列に列 "D"の番号があるようにマクロを書くつもりです "B49"で始まる "Sheet4"にその行のセル "A"から "D"を挿入します。上書きしたくない "B49"の前後に情報がある行があります。
Sub Copy_And_Paste()
'
' Copy_And_Paste Macro
'
Application.ScreenUpdating = False
LastRow = Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
For i = 4 To LastRow
If Cells(i, 4) > 0 Then
Range(Cells(i, 1), Cells(i, 4)).Select
Selection.Copy
Sheets("Sheet4").Select
Range("B49").Select
ActiveSheet.Paste
End If
Next i
Application.ScreenUpdating = True
End Sub
今それが唯一のコラム「D」の数との最初の行を貼り付けます。ここでは
は、私はセルをコピーしなければならないコードがあります。
'へ
For i
ステートメントを変更することで、望んでいたように動作させることができました。 "B49"の前と後の両方に情報を持つ行があります。私は上書きしたくありません。 – findwindowしたがって、 "Sheet1"の列 "D"に数量を持つ10行がある場合、 "B50"の "Sheet4"に関する情報は "B60"になります。 –
私はまだ理解していません:/あなたは行を挿入したいですか? – findwindow