Excel 消息框“是/否”的响应相同

Excel 消息框“是/否”的响应相同,excel,vba,Excel,Vba,我正在制作一个电子表格,用于记录发动机测试中传动轴的使用情况。在用户表单上,他们记录安装或移除的传动轴,电子表格自动更新所有内容。作为这项工作的一部分,我希望当他们试图安装一个以前可能已经报废的传动轴时,它能自动标记出来,但也允许他们继续使用,因为可能有一些原因导致它超出正常使用范围。为此,我将其设置为打开一个带有“是/否”选项的消息框,以便在传动轴记录为报废时继续,但无论选择哪个按钮,都会出现相同的结果 ElseIf Installbutton = True And Locationtext

我正在制作一个电子表格,用于记录发动机测试中传动轴的使用情况。在用户表单上,他们记录安装或移除的传动轴,电子表格自动更新所有内容。作为这项工作的一部分,我希望当他们试图安装一个以前可能已经报废的传动轴时,它能自动标记出来,但也允许他们继续使用,因为可能有一些原因导致它超出正常使用范围。为此,我将其设置为打开一个带有“是/否”选项的消息框,以便在传动轴记录为报废时继续,但无论选择哪个按钮,都会出现相同的结果

ElseIf Installbutton = True And Locationtext = "Scrapped" Then

MsgBox "This Propshaft is showing as Scrapped" & vbNewLine & "Do you wish to continue with the install?", vbYesNo + vbDefaultButton2 + vbQuestion

    If vbYes Then
    GoTo 10
    Else
    Exit Sub
    End If

Else
因此,无论按下哪个按钮,它都会继续运行,就像您按下“是”并运行子系统的其余部分一样。我更改了代码,使vbNo位于第一位,但无论您按下哪个按钮,它都会退出子系统。我也尝试过使用vbYes或vbNo的数字,但没有任何区别

我也试过做answer=messageboxblah,blah,blah和if-answer=vbYes等等,但没有改变


我确信我遗漏了一些明显的东西,有什么建议吗?

您需要将用户的“答案”保存到变量并测试该变量:

uinput = MsgBox("Answer yes or no", vbYesNo)

If uninput = vbYes Then
    'Do something
ElseIf uninput = vbNo Then
    'Do something else
End if

请注意,我在MsgBox函数的参数周围添加了括号,因为这在用函数填充变量时是必要的。

谢谢。我可以发誓我已经试过了,但很明显我一定做了一些稍微不同的事情。转到10-真的吗?自从在Compucolor II上用Basic编程以来,我就没有使用过这一行代码。当我查看代码行时,一个数字本身会非常清楚地显示出来。如果在查看代码时需要查找一个数字,那么您的代码结构从根本上是错误的。这是经典的意大利面编码。