在消息框之后结束子例程

时间:2018-02-23 00:52:30

标签: excel vba excel-vba

我试图找出如何结束我的宏,如果你要按否。但是,在宏结束之前,我想运行代码。如果用户按“是”,则代码应该正常进行。这是我的代码:

Sub main()

    Call GriffinC_ISM_Table ' This Macro will create the pivot tables

    If MsgBox("Have you run this macro before", vbYesNo) = vbNo Then Call Spark_Table End Sub

    Call Extraps

End Sub

从这段代码中可以看出,如果用户按下no,我想运行代码“Spark_Table”,然后结束sub。但是,如果用户按“是”,我想运行代码“Extraps”。任何帮助将不胜感激。

谢谢,

2 个答案:

答案 0 :(得分:3)

试,

dim m as long

m = MsgBox("Have you run this macro before", vbYesNo)
if m = vbNo Then
    Call Spark_Table
    Exit Sub
elseif m = vbyes then
    Call Extraps
else
    '????? cancelled out of msgbox
end if

答案 1 :(得分:2)

把它分成这样的行(我很震惊甚至编译......)(如果你想提前终止,那就是Exit Sub。)(你真的不需要使用{{1 ()我向你的Call添加了一个“问题”图标

MsgBox

...并确保测试用户点击Sub main() GriffinC_ISM_Table ' This Macro will create the pivot tables If MsgBox("Have you run this macro before?", vbYesNo + vbQuestion) = vbNo Then Spark_Table ' put some code here to automatically send an email to the person who can help Exit Sub End IF Extraps End Sub 会发生什么情况,因为它可能会返回Close XvbYes以外的其他内容