2017-08-15 8 views
0

以下をより効率的に処理する方法はありますか?VBA - forループを介して値を代入する

    Range("approvedSales").Cells(raS, 2).Value = Sheet1.Cells(i, 1).Value 
        Range("approvedSales").Cells(raS, 3).Value = Sheet1.Cells(i, 4).Value 
        Range("approvedSales").Cells(raS, 4).Value = Sheet1.Cells(i, 6).Value 
        Range("approvedSales").Cells(raS, 5).Value = Sheet1.Cells(i, 7).Value 
        Range("approvedSales").Cells(raS, 6).Value = Sheet1.Cells(i, 9).Value 
        Range("approvedSales").Cells(raS, 7).Value = Sheet1.Cells(i, 26).Value 
        Range("approvedSales").Cells(raS, 8).Value = Sheet1.Cells(i, 27).Value 
        Range("approvedSales").Cells(raS, 9).Value = Sheet1.Cells(i, 16).Value 
        Range("approvedSales").Cells(raS, 10).Value = Sheet1.Cells(i, 17).Value 
        Range("approvedSales").Cells(raS, 11).Value = Sheet1.Cells(i, 18).Value 
        Range("approvedSales").Cells(raS, 12).Value = Sheet1.Cells(i, 19).Value 
        raS = raS + 1 
+0

'以来、(私は、1)'と '(私は、4)'の値ではありません一貫して、それはあなたの質問を非常に不明瞭にします。第二の価値はどこから来ていますか? –

答えて

2

これを行うには、 "クリーン" な方法ではなく、Array秒に値を格納することです:

Dim array1() As Variant, array2() As Variant, i As Integer 
array1 = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) 
array2 = Array(1, 4, 6, 7, 9, 26, 27, 16, 17, 18, 19) 

For i = 0 To 10 
    Range("approvedSales").Cells(raS, array1(i)).Value = Sheet1.Cells(i, array2(i)).Value 
Next i 
+1

私が探していたもの。 TY! – lostinOracle

関連する問題