【发布时间】:2019-05-28 22:15:03
【问题描述】:
我有一个do until loop,我不得不在IF/ELSE 语句中重复。我想在IF/Else If/Then 语句中调用sub(包含do until loop)。请帮忙
此代码有效,但我想将每个 do until loop 压缩为 sub,我可以使用不同的 Tf 和 gain 值调用:
Dim tmin As Double
Dim hgmin As Double
Dim tf As Double
Dim hmix As Double
Dim hg As Double
Dim i As Double
tmin = -70 'Lowest temperature of fluid on chart (Fahreinhet)
hgmin = 79.66 'Lowest enthalpy(saturated vapor)
tf = InputBox("Enter Lower Temperature [Fahrenheit]") 'Lower temperature of system
i = tmin
hg = hgmin
If tf <= -9 Then
Do Until i = tf
hg = hg + 0.15
i = i + 1
Loop
ElseIf tf >= -9 And tf <= 60 Then
Do Until i = -9
hg = hg + 0.15
i = i + 1
Loop
Do Until i = tf
hg = hg + 0.125
i = i + 1
Loop
End If
msgbox(hg)
End Sub
下面的代码不起作用,循环卡住或给我hmin而不是hmin + (gain * amount of iterations from tmin to Tf)的值。
Sub main()
Dim Tf As Double
Dim i As Double, hg As Double, tmin As Double, hmin As Double
Tf= InputBox("Enter Lower Temperature Value")
hmin = 79.66
hg = hmin
tmin = -70
i = tmin
If Tf <= -9 Then
Call subby(Tf, 0.15)
ElseIf Tf >= -9 And Tf <= 60 Then
Call subby(-9, 0.15)
Call subby(Tf, 0.125)
End If
msgbox(hg)
End Sub
Sub subby(T As Double, gain As Double)
Dim i As Double, hg As Double, tmin As Double, hmin As Double
tmin = -70
hmin = 79.66
hg = hmin
i = tmin
Do Until i = T
hg = hg + gain
i = i + 1
Loop
End Sub
我希望下面的代码尝试在 main sub IF/Else 语句中调用另一个 sub 的方法,以匹配上述 hg 的代码值。
【问题讨论】:
-
首先,将这些值相乘而不是循环会更简单吗?!即:
hg = hg + (tf * 0.15)或非常相似的逻辑/计算。 -
似乎
subby没有返回任何东西(subby中的hg与main中的hg不是同一个变量)
标签: vba subroutine