IfElse和使用变量?

时间:2014-10-27 19:39:18

标签: excel vba if-statement

我需要循环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的范围值才能使其正常工作?

1 个答案:

答案 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