我有4个代码块,它们从一行中获取值并进行偏移+1, +2, +3, +4
并将这些单元格下的值相乘(跨3列)。
该代码采用我在工作表2中列出的值,并根据rIterator
变量(仅显示我需要更新的唯一键)进行更新。
输入初始值后,必须进行偏移乘法。我该如何截断它:
wsA.Cells(fndRow, 3).Value = rIterator.Offset(, 2).Value
wsA.Cells(fndRow, 4).Value = rIterator.Offset(, 3).Value
wsA.Cells(fndRow, 5).Value = rIterator.Offset(, 4).Value
wsA.Cells(fndRow + 1, 3).Value = rIterator.Offset(, 2).Value * 1.1
wsA.Cells(fndRow + 1, 4).Value = rIterator.Offset(, 3).Value * 1.1
wsA.Cells(fndRow + 1, 5).Value = rIterator.Offset(, 4).Value * 1.1
wsA.Cells(fndRow + 2, 3).Value = rIterator.Offset(, 2).Value * 1.15
wsA.Cells(fndRow + 2, 4).Value = rIterator.Offset(, 3).Value * 1.15
wsA.Cells(fndRow + 2, 5).Value = rIterator.Offset(, 4).Value * 1.15
wsA.Cells(fndRow + 3, 3).Value = rIterator.Offset(, 2).Value * 1.2
wsA.Cells(fndRow + 3, 4).Value = rIterator.Offset(, 3).Value * 1.2
wsA.Cells(fndRow + 3, 5).Value = rIterator.Offset(, 4).Value * 1.2
wsA.Cells(fndRow + 4, 3).Value = rIterator.Offset(, 2).Value * 1.3
wsA.Cells(fndRow + 4, 4).Value = rIterator.Offset(, 3).Value * 1.3
wsA.Cells(fndRow + 4, 5).Value = rIterator.Offset(, 4).Value * 1.3
变成类似的东西:
For i = 0 To 4
For j = 3 To 5
wsA.Cells(fndRow + i, j).Value = rIterator.Offset(, j - 1).Value
Next j
Next i
仅执行某种Case语句来处理偏移量之前的原始值的1.1
1.15
1.2
1.3
乘数?
可以根据需要提供其余代码
编辑:理想情况下,我希望它看起来像这样
For i = 0 To 4
For j = 3 To 5
Select Case i
Case 0
j = 1
Case 1
j = 1.1
Case 2
j = 1.15
Case 3
j = 1.2
Case 4
j = 1.3
End Select
wsA.Cells(fndRow, 3 + i).Value = rIterator.Offset(, 2).Value * j
Next j
Next i
但那里不是100%
答案 0 :(得分:2)
将值放入数组中
Dim multplr as Variant
multplr = array(1,1.1,1.15,1.2,1.3)
然后在基于i的结束通话中
wsA.Cells(fndRow + i, j).Value = rIterator.Offset(, j - 1).Value * multplr(i)
答案 1 :(得分:2)
我认为这段代码可以解决问题:
Dim multiplier(0 To 4) As Double
multiplier(0) = 1
multiplier(1) = 1.1
multiplier(2) = 1.15
multiplier(3) = 1.2
multiplier(4) = 1.3
For i = 0 To 4
For j = 3 To 5
wsA.Cells(fndRow + i, j).Value = rIterator.Offset(, j - 1).Value * multiplier(i)
Next j
Next i