2017-08-15 125 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

因爲'(I,1)'和'(I,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