我有 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%
最佳答案
将值放入数组中:
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)
关于excel - 如何将这些代码块截断为一个嵌套的 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55762584/