我正在寻找一个do while循环,以在cellcert, 4
上输入一个数字,并在cellcert,5
上返回一个值。但是,如果cellcert, 4
的值大于1,则它将为每个“ 1”加5,因此其if逻辑如下:
1 = 18、2 = 18 + 5、3 = 18 + 5 + 5、4 = 18 + 5 + 5 + 5等...
这就是为什么我要考虑合并单独的函数来添加5个代码并在Sub TATcomputation()
内调用它的原因
Sub TATcomputation()
Dim certcell As Integer
certcell = 2
Do While Cells(certcell, 4).Value <> ""
Cells(certcell, 5).Value = Cells(certcell, 4).Value * 18
certcell = certcell + 1
Loop
End Sub
答案 0 :(得分:0)
怎么样:
Sub TATcomputation()
Dim certcell As Integer
certcell = 2
Do While Cells(certcell, 4).Value <> ""
If certcell = 2 Then
Cells(certcell, 5).Value = Cells(certcell, 4).Value * 18
Else
Cells(certcell, 5).Value = Cells(certcell, 4).Value * (18 + (5 * (certcell - 2)))
End If
certcell = certcell + 1
Loop
End Sub
答案 1 :(得分:0)
您在这里不需要IF
语句。始终总是从18开始,然后将Column D
(小于1)中的单元格值乘以5
'Do While....
Cells(certvalue, 5).Value = 18 + ((Cells(certvalue, 4) -1) *5)
'certvalue = cervalue + 1
'Loop
您应该限定那些Cells
对象或使用With
块顺便说一句