0

我正在将 Mathcad 代码转换为 VBA 并试图弄清楚如何复制 While 循环,该循环要求程序在 TGuess < 0 时运行循环。在循环的末尾是一个 if 语句来打破如果 sGuess>1/1.4 则循环(我会附上一张图片,但我的名声不允许我这样做)。

我已经用 VBA 编写了这段代码,但想知道在原始 While 语句中包含 sGuess 变量是否正确,或者它是否会影响循环的输出:

    While TGuess < 0 And sGuess <= 1 / 1.4

        kterm = (kj ^ (1 / 6)) / 26 'k term in the numerator of depth equation
                    epw = 3 / 5
        FDepth = ((kterm * RainInt * L * CF) / sGuess ^ 0.5) ^ epw

        tflow = UW_Wat * g * sGuess * FDepth    'Calc Flow Shear Stress

        pflow = 7.853 * UW_Wat * (tflow / UW_Wat) ^ (3 / 2)

        TGuess = pflow - pcrit   'Recalc TGuess as E-P
        sGuess = sGuess + SlopeInc  'Calc new stable slope
    Wend

任何输入将不胜感激。

4

1 回答 1

0

为了减轻您的担忧,最好将 while...wend 循环替换为 Do While ... Loop 块。然后,您可以通过使用类似于

If sGuess > 1/1.4 Then
    Exit Do
End If
于 2015-09-12T00:16:12.977 回答