0

私は Mathcad コードを VBA に変換する過程にあり、TGuess < 0 の間ループを実行するようプログラムに要求する While ループを複製する方法を見つけようとしています。ループの最後には、ループを中断する 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 ... ループ ブロックに置き換える方がよい場合があります。次に、次の行に沿って何かを使用して、対応する Mathcad コードにブレーク条件を配置することができます。

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