代码之家  ›  专栏  ›  技术社区  ›  Forward Ed

for循环中有更好的if语句位置吗

  •  0
  • Forward Ed  · 技术社区  · 8 年前
    For k = 0 To (.Cells(38, 4).Value - 1)
        For i = 70 To 73
            For j = 0 To 2
                If j = 0 Then
                    bumpvalue = k * (.Cells(39, 4).Value + .Cells(31, 4).Value)
                Else
                    bumpvalue = 0
                End If
                StartPoint(j) = .Cells(i, 8 + j).Value + bumpvalue
                EndPoint(j) = .Cells(i + 1, 8 + j).Value + bumpvalue
            Next j
    
            Set lineObj = DWGFile.ModelSpace.AddLine(StartPoint, EndPoint)
        Next i
    Next k
    

    有没有更好的地方或方法来实现“bumpValue”,它只适用于j=0?

    有件事告诉我下面不会飞。

     StartPoint(j) = .Cells(i, 8 + j).Value + if j = 0 then k * (.Cells(39, 4).Value + .Cells(31, 4).Value) else 0
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Brian M Stafford    8 年前

    你的想法非常接近。试试 IIf 声明代替:

    StartPoint(j) = .Cells(i, 8 + j).Value + IIf(j = 0, k * (.Cells(39, 4).Value + .Cells(31, 4).Value), 0)