0
これはコードです:このマクロ記録をシート全体に適用するにはどうすればよいですか?
Sub Macro11()
Sheets("Max Amps").Select
Range("B1").Select
Application.CutCopyMode = False
Selection.ClearContents
Selection.NumberFormat = "General"
ActiveCell.FormulaR1C1 = "='Load Book'!R[7]C[-1]"
Range("B2").Select
ActiveSheet.Calculate
Range("B6").Select
Selection.Copy
Sheets("Load Book").Select
Range("B8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Max Amps").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Load Book").Select
Range("C8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C5:C8").Select
Application.CutCopyMode = False
Selection.NumberFormat = "m/d/yyyy"
Range("B9").Select
Sheets("Max Amps").Select
Range("B1").Select
Selection.ClearContents
Selection.NumberFormat = "General"
ActiveCell.FormulaR1C1 = "='Load Book'!R[8]C[-1]"
Range("B2").Select
ActiveSheet.Calculate
Range("B6").Select
Selection.Copy
Sheets("Load Book").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Max Amps").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Load Book").Select
Range("C9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B10").Select
Sheets("Max Amps").Select
Range("B1").Select
Application.CutCopyMode = False
Selection.ClearContents
Selection.NumberFormat = "General"
ActiveCell.FormulaR1C1 = "='Load Book'!R[9]C[-1]"
Range("B2").Select
ActiveSheet.Calculate
Range("B6").Select
Selection.Copy
Sheets("Load Book").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C10").Select
Sheets("Max Amps").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Load Book").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B11").Select
Sheets("Max Amps").Select
Range("B1").Select
Application.CutCopyMode = False
Range("B1").Select
Selection.NumberFormat = "General"
Selection.ClearContents
ActiveCell.FormulaR1C1 = "='Load Book'!R[10]C[-1]"
Range("B2").Select
ActiveSheet.Calculate
Range("B6").Select
Selection.Copy
Sheets("Load Book").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Max Amps").Select
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Load Book").Select
Range("C11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
、私はそれが非常に長いと厄介だ知っているが、私はVBAに新たなんだので、それはマクロの記録を介して行われます。私はこれを行うために必要な約50-60行を持っていますが、私はtheresのように、これを自動化するより簡単な方法と思います... forループをどうにかして。各繰り返しの録音の代わりにループでこのコードを実装するにはどうすればよいですか?上記のコードは4回の反復を示しています。 R [7]〜R [10]
各繰り返しペースト。最初の反復の場合と同様に、最初の繰り返しでは、Load BookシートのRow 1 Column 1とし、Max amps B2で貼り付けた値を使用します。シートを計算した後、Max AmpsシートセルB8とB9の値がRow1 Column1の最初のコピーされた値の隣に貼り付けられます。Row 1 Column 2とColumn 3 – samred
Oops B6とB7を貼り付ける必要がありますB8とC8に変換する。しかし、行は発生するr1c1ごとに変化します。たとえば、R [7] C [-1]はMax AmpsセルB2にコピーされます。次に、シートを計算します。次にMax Amps Cell B6とB7がLoad Book Cell B8とC8に貼り付けられます。これと同じプロセスがR [8] C [-1]に対してaganiで実行され、最大アンプからの結果がB9 C9にペーストされます。ちょうどそれはそれを投稿するだけだと思います。b8 c8 – samred
したがって、アクティブなセルから7行下に、そして左に1列( 'R [7] C [-1]')がセル 'B2'にコピーされ、 'B1'はあなたのコード内のアクティブなセルです - それで、セル' A8'を見ていますか?行7を見たい場合、列1は 'R7C1'を使います。大括弧は相対参照にします。あなたが何をしているのかはっきりしていませんが、 'lCounter'変数を使ってペースト・セルを更新することができます - ' wrkSht.Cells(8,2)= .Cells(lCounter、2) ' –