Vba 将vbYesNo响应从一个模块继承到另一个模块

Vba 将vbYesNo响应从一个模块继承到另一个模块,vba,Vba,大家好 我正在用4个不同的模块做一个宏。 前3个模块用于格式化不同的文件,如果我想同时格式化所有文件,我将单击模块4。 前3个模块有一个包含格式摘要报告的消息框,但是,如果我通过模块4调用模块,我不想打开这些消息框 以下是我的代码,但它不起作用,因为Summary(对vbYesNo的响应)的值未传输到模块1:( 模块4代码: Sub FormatAll_Click() YesNo = MsgBox("Do you want to show Report Summary after formatt

大家好

我正在用4个不同的模块做一个宏。 前3个模块用于格式化不同的文件,如果我想同时格式化所有文件,我将单击模块4。 前3个模块有一个包含格式摘要报告的消息框,但是,如果我通过模块4调用模块,我不想打开这些消息框

以下是我的代码,但它不起作用,因为Summary(对vbYesNo的响应)的值未传输到模块1:(

模块4代码:

Sub FormatAll_Click()
YesNo = MsgBox("Do you want to show Report Summary after formatting each CSA  Report?", vbYesNo + vbQuestion, "Report Summary")
Summary = YesNo

Module1.FORMAT_1st_Report

Module2.FORMAT_2nd_Report

Module3.FORMAT_3rd_Report

MsgBox "Done formatting all documents", vbInformation, "Done"

End Sub
模块1代码:

If Summary <> vbNo Then
    MsgBox "Done Formatting Purchasing Document Creation Report" & vbNewLine & "Summary:" & vbNewLine & "     Successful: " & s & vbNewLine & "     Empty Worksheet: " & e & vbNewLine & "     Failed: " & f, vbInformation, "SUMMARY REPORT"
    If s > 0 Then
        Dim YesNo As String
        YesNo = MsgBox("Do you want to open all successfully formatted file?", vbYesNo + vbQuestion, "Open File")
        If YesNo = vbYes Then
        Module14.OpenPOCreation
        End If
    End If
End If
如果没有,则
MsgBox“已完成对采购文档创建报告的格式设置”&vbNewLine&“摘要:&vbNewLine&”成功:&s&vbNewLine&“空工作表:&e&vbNewLine&”失败:&f,vbInformation,“摘要报告”
如果s>0,则
朦胧的YesNo如弦
YesNo=MsgBox(“是否要打开所有已成功格式化的文件?”,vbYesNo+vbQuestion,“打开文件”)
如果是no=vbYes,则
模块14.OpenPOCreation
如果结束
如果结束
如果结束

将一个默认值为0的可选参数添加到其他子系统中,然后通过
汇总
FormatAll\u单击

例如:

Sub FormatAll_Click()
    Dim Summary

    Summary = MsgBox("Do you want to show Report Summary after formatting" & _
                 " each CSA  Report?", vbYesNo + vbQuestion, "Report Summary")

    Module1.FORMAT_1st_Report Summary
    Module2.FORMAT_2nd_Report Summary
    Module3.FORMAT_3rd_Report Summary

    MsgBox "Done formatting all documents", vbInformation, "Done"

End Sub


Sub FORMAT_1st_Report(Optional response = 0)
    If response = vbYes Then
        MsgBox "Called with vbYes"
    Else
        MsgBox "Not called with vbYes"
    End If
End Sub

这真的很有帮助:)