2017-01-27 4 views
1

セルA4:P9に式/データ/書式設定を持つワークシート "Med"から始めます。これらのセルをセルA10にコピーする必要があります(6行下)。次に、別のワークシート「データ」の情報からセルの一部を入力する必要があります。データの数と同じ回数を繰り返す必要があります(A:A)-1は、情報をコピーするたびに6行を削除します。ループのマクロと各ループの範囲の変更

私が記入する必要があるデータはシート "データ"から来て、シート "Med"の各コピーの1つの列に移動します。

私は最初のコピーを作成するコードを持っていますが、ここからどこに行くのか分かりません。下のコードを見ると、次のコピーはA16(A10から6行下)に移動します。

ワークシート "Med"の範囲も6行増加し、列は同じままです。

ワークシート「データ」の範囲は列を移動し、行番号は同じままです。

ヨルダン

Sub Macro1() 
    Dim wsData As Worksheet 
    Dim wsMed As Worksheet 
    Set wsData = Sheets("Data") 
    Set wsMed = Sheets("Med") 

    'Copy data set 
    wsMed.Range("A4:P9").Copy wsMed.Range("A10") 'Set Premium Values 
    wsMed.Range("M11").Value = wsData.Range("C20").Value 
    wsMed.Range("M12").Value = wsData.Range("C21").Value 
    wsMed.Range("M13").Value = wsData.Range("C22").Value 
    wsMed.Range("M14").Value = wsData.Range("C23").Value 'Set Assumptions 
    wsMed.Range("L11").Value = wsData.Range("C24").Value 
    wsMed.Range("L12").Value = wsData.Range("C25").Value 
    wsMed.Range("L13").Value = wsData.Range("C26").Value 
    wsMed.Range("L14").Value = wsData.Range("C27").Value 
End Sub 
+0

を実行しますか?あなたはいつもA4:P9をコピーしますか、または2番目のコピーは他のセルを使用しますか? – teylyn

答えて

3

このマクロは、コードを実行する必要がない、どのくらいの頻度コード3回

Sub Macro1() 
    Dim wsData As Worksheet 
    Dim wsMed As Worksheet 
    Set wsData = Sheets("Data") 
    Set wsMed = Sheets("Med") 
    Dim i As Integer, j As Integer, x As Integer 

    i = 10 
    j = 3 


    'Copy data set 
    For x = 1 To 3 ' run 3 times 
     wsMed.Range("A4:P9").Copy wsMed.Cells(i, 1) 'Set Premium Values 
     wsMed.Range("M" & i + 1).Value = wsData.Cells(20, j).Value 
     wsMed.Range("M" & i + 2).Value = wsData.Cells(21, j).Value 
     wsMed.Range("M" & i + 3).Value = wsData.Cells(22, j).Value 
     wsMed.Range("M" & i + 4).Value = wsData.Cells(23, j).Value 'Set Assumptions 
     wsMed.Range("L" & i + 1).Value = wsData.Cells(24, j).Value 
     wsMed.Range("L" & i + 2).Value = wsData.Cells(25, j).Value 
     wsMed.Range("L" & i + 3).Value = wsData.Cells(26, j).Value 
     wsMed.Range("L" & i + 4).Value = wsData.Cells(27, j).Value 
     i = i + 6 
     j = j + 1 
    Next x 

End Sub 
+0

ありがとうございました。コードは、 "データ"ワークシートの1行目の行数に1を加えた数で実行する必要があります。 – JordanCA57

+0

私はそれを得ました。私はこれを3の代わりに追加しました。私はセルA27を使って、 "データ"の行1のカウントを行いました。私は、コード内でカウントを得る方法があると思うが、これはうまくいく!!ワークシート( "Info")。範囲( "A27")。値 - 1 – JordanCA57

関連する問題