VBA – 通过循环赋值

有没有更有效的方式来处理下面?

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 

“干净”的方法是将你的值存储在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