我需要循环20行,并将一个方程式添加到不同变量的工作表中。我使用了If .... Else If语句,我认为我需要声明变量,因为我只填充第二行数据。
我的代码:
Do While counter < 20
counter = counter + 1
If CNum = 269 And SCode = 7168 Then
NTotal = ("=(C2*35)/1000")
Range("E2").Value = NTotal
ElseIf CNum = 269 And SCode = 7181 Then
NTotal = ("=(C2*2.5)/1000")
Range("E2").Value = NTotal
ElseIf CNum = 269 And SCode = 7183 Then
NTotal = ("=(2*(D2-C2))/1000+50")
Range("E2").Value = NTotal
End If
Loop
我是否只是声明C2,D2和E2的范围值才能使其正常工作?
乔
答案 0 :(得分:2)
这有两件事:
首先因为CNum和scode在循环内没有变化,所以它们总是具有相同的值,因此每次迭代只能满足第一个匹配条件
其次,如果你想增加行数,那么你需要包括&#39; counter&#39;增加&#39;范围的行元素&#39;声明。一个例子如下:
Do While counter < 20
counter = counter + 1
If CNum = 269 And scode = 7168 Then
NTotal = ("=(C2*35)/1000")
Cells(counter + 1, 5).Value = NTotal
ElseIf CNum = 269 And scode = 7181 Then
NTotal = ("=(C2*2.5)/1000")
Cells(counter + 1, 5).Value = NTotal
ElseIf CNum = 269 And scode = 7183 Then
NTotal = ("=(2*(D2-C2))/1000+50")
Cells(counter + 1, 5).Value = NTotal
End If
Loop
修改强>
您也可以阅读this