“if - elseif - then - else”声明不起作用

时间:2014-08-05 20:33:02

标签: excel vba excel-vba if-statement

我有三个texbox,名为tbttUg1,tbttUg2和tbttUg3。基本的是,当我点击"添加"按钮,第一个文本框显示一个equestion的结果。当我第二次点击它时,第二个文本框显示结果。

代码是:

Private Sub CommandButton1_Click()
Dim bb As Integer
Dim dt As Integer

bb = tbttA.Value / (0.5 * tbttP.Value)
dt = tbttw.Value + cbttL.Value * (0.17 + 1 / tbttU.Value)
mif = 2 * cbttL.Value / (3.1415 * bb + dt) * Application.WorksheetFunction.Ln(3.1415 * bb / dt + 1) 
wif = cbttL.Value / (0.457 * bb + dt) 

If tbttUg1.Value = "" And dt < bb Then
        tbttUg1.Value = Round(mif, 4)
ElseIf tbttUg1.Value = "" And dt >= bb Then
        tbttUg1.Value = Round(wif, 4)
ElseIf tbttUg1.Value > 0 And dt < bb Then
        tbttUg2.Value = Round(mif, 4)
ElseIf tbttUg1.Value > 0 And dt >= bb Then
        tbttUg2.Value = Round(wif, 4)
ElseIf tbttUg2.Value > 0 And dt < bb Then
        tbttUg3.Value = Round(mif, 4)
ElseIf tbttUg2.Value > 0 And dt >= bb Then
        tbttUg3.Value = Round(wif, 4)
        Else
        MsgBox "halo"
End If

End Sub

问题是,添加仅适用于两个texbox,我不知道为什么,但第三个添加总是重写第二个。

有人看到编码中的错误吗?

此外,是否有更好的方法可以在单个用户表单上添加ans查看中间结果 网页?

感谢您的任何反馈!

1 个答案:

答案 0 :(得分:0)

如果您拆分mif / wif内容,并且每个框只有一个If语句,它就会明确说明您的代码。这有用吗?

Dim DispText As String
DispText = Round(IIf(dt < bb, mif, wif), 4)

If Len(tbttUg1.Value) = 0 Then
    tbttUg1.Value = DispText
ElseIf Len(tbttUg2.Value) = 0 Then
    tbttUg2.Value = DispText
ElseIf Len(tbttUg3.Value) = 0 Then
    tbttUg3.Value = DispText
Else
    MsgBox "halo"
End If