是/否循环提问

时间:2019-04-05 22:12:18

标签: excel vba loops

该问题要求创建一个循环,询问最初的是/否问题:您是否正在上大学?如果否,则循环应结束。如果是,则代码应要求用户回答:直到上大学的年限,每年的大学付款额和另一个孩子?如果另一个孩子的答案是肯定的,则循环应重新开始。如果答案为否,则循环应结束。我在拼凑起来时遇到麻烦。

我尝试使用是/否消息框,但是遇到了更改为数字答案并使循环重新开始的问题。

Ans = MsgBox("Saving for college?", vbYesNo)
If Ans = vbNo Then Exit Sub
If Ans = vbYes Then
Dim myvalue As Integer
myvalue = InputBox("Years until college starts?")
Dim value As Integer
value = InputBox("Annual College Payments?")
Ans = MsgBox("Another child?")
Ans = MsgBox(msg, vbYesNo)
If Ans = vbYes**strong text** Then

2 个答案:

答案 0 :(得分:0)

以下代码可以为您提供帮助。但是请记住,您必须在消息框和输入框中都处理用户答案(是,否,关闭,取消)。

Option Explicit

Sub test()

    Dim Ans1 As Long, value1 As String, value2 As String, Ans2 As String

    Ans1 = MsgBox("Saving for college", vbYesNo + vbQuestion)

    If Ans1 = vbNo Then
        Exit Sub
    ElseIf Ans1 = vbYes Then

        value1 = InputBox("Years until college starts?")
        value2 = InputBox("Annual College Payments?")
        Ans2 = MsgBox("Another child", vbYesNo + vbQuestion)
        If Ans2 = vbYes Then
            'Code
        ElseIf Ans2 = vbNo Then
            'Code
        End If
    End If

End Sub

答案 1 :(得分:0)

Option Explicit

Sub Questions()

    Dim ans As Long
    Dim yearsToCollegeStart As String, annualCollegePayment As String

    Do
        If MsgBox("Saving for college", vbYesNo + vbQuestion) = vbNo Then Exit Sub

        yearsToCollegeStart = InputBox("Years until college starts?")
        annualCollegePayment = InputBox("Annual College Payments?")

        ans = MsgBox("Another child", vbYesNo + vbQuestion)
    Loop while ans = vbYes

End Sub