在取消保存对话框时退出每个循环

不知名的

我是VBA的新手,作为我自己开发的一部分,我目前正在重新编写自己写的一些自动化技术,这些自动化技术已在大约6个月前完成。我有以下代码,该代码根据按下按钮的工作表来标识工作表名称(有两个不同的工作表名称,类似于CustName_CALC和两个按钮)。然后,它遍历工作簿中的其余工作表以查找“相似”工作表。

以下子项PDF_Bill()适用于上述按钮:

Public vPDFilename As Variant
Public wb As Workbook
Public ws As Worksheet
Public wsBill As Worksheet
Public wsCalc As Worksheet
Public wsStatement As Worksheet
Public sLocation As String, sCustName As String, myTitle As String, myMsg As String, InitialFileName As String, Response As String, C_Response As String

Sub PDF_Bill()

sCustName = Left(ActiveSheet.Name, InStr(ActiveSheet.Name, "_") - 1)

Set wb = ThisWorkbook
Set wsCalc = wb.Sheets(sCustName & "_CALC")

myTitle = "Save Invoice"
myMsg = "Are you sure you would like to save the " & wsCalc.Cells(1, 2).Value2 & " invoice?"
Response = MsgBox(myMsg, vbQuestion + vbOKCancel, myTitle)
Select Case Response
    Case Is = vbOK

For Each wsBill In ThisWorkbook.Worksheets
        If wsBill.Name Like sCustName & "_BILL" & "*" Then
                    Call Module1_PDF.PDF_Procedure
        End If       
    Next wsBill

    Case Is = vbCancel
        'user cancels the first popup message
        myTitle = "Invoice Cancelled!"
        myMsg = "You've cancelled the request to save the invoice!"
        C_Response = MsgBox(myMsg, vbOKOnly, myTitle)

End Select
End Sub

上面这样称呼:

Sub PDF_Procedure()

sCustName = Left(ActiveSheet.Name, InStr(ActiveSheet.Name, "_") - 1)
sLocation = "S:DRIVELOCATION" & wsCalc.Cells(1, 2).Value2 & "\Invoices\"

vPDFilename = Application.GetSaveAsFilename( _
InitialFileName:=sLocation _
                    & wsCalc.Cells(1, 2).Value2 _
                    & " " _
                    & MonthName(Month(Date)) _
                    & " Invoice", _
FileFilter:="PDF, *.pdf", _
Title:="Save as PDF")

If vPDFilename <> False Then
    With wsBill
        '.Visible = xlSheetVisible '[will be hidden at later state]
        '.Activate
        'predefined area for 5 page invoice - this may need to change in future.
        .PageSetup.PrintArea = "A1:S300"
    End With

    'creates the PDF
    wsBill.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=vPDFilename, _
    OpenAfterPublish:=False

    'wsBill.Visible = xlSheetHidden 'bill sheet HIDE [WILL BE USED LATER NOT SET UP]
    Else
      'if user cancels save dialog box
      myTitle = "Invoice Cancelled!"
      myMsg = "You've cancelled the request to save the invoice!"
      C_Response = MsgBox(myMsg, vbOKOnly, myTitle)
      wsCalc.Activate
      GoTo CancelProcess    
End If
CancelProcess:
Exit Sub
End Sub

上面的代码(除了,GoTo CancelProcess因为这是我一直在努力解决的问题)对于一张称为的工作表非常适用,CustName_Bill但是我还需要它在以下情况下工作。

我已经审查了以下页面,但没有成功:

我知道我需要在exit某处声明,但是我一直在努力理解它的去向。我看到的许多示例不够复杂,不足以使我得出如何解决问题的结论。

我目前的问题是,我有两张纸被命名为相似(故意):

  • CustName_Bill_Type
  • CustName_Bill_Type1

循环继续到下一个工作表,即CustName_Bill_Type1当用户取消时,Application.GetSaveAsFilename但是我需要for each在用户取消第一个 Application.GetSaveAsFilename对话框时退出循环

所以我的问题是,exit一旦用户在第一个保存对话框上单击“取消”,我就需要把代码完全终止的位置放在哪里

CDP1802

您需要将子项转换为函数,以便在用户取消保存后返回FALSE。

Function PDF_Procedure() as Boolean

    sCustName = Left(ActiveSheet.Name, InStr(ActiveSheet.Name, "_") - 1)
    sLocation = "S:DRIVELOCATION" & wsCalc.Cells(1, 2).Value2 & "\Invoices\"

    vPDFilename = Application.GetSaveAsFilename( _
    InitialFileName:=sLocation _
                        & wsCalc.Cells(1, 2).Value2 _
                        & " " _
                        & MonthName(Month(Date)) _
                        & " Invoice", _
    FileFilter:="PDF, *.pdf", _
    Title:="Save as PDF")

    If vPDFilename <> False Then
        With wsBill
            '.Visible = xlSheetVisible '[will be hidden at later state]
            '.Activate
            'predefined area for 5 page invoice - this may need to change in future.
            .PageSetup.PrintArea = "A1:S300"
        End With

        'creates the PDF
        wsBill.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=vPDFilename, _
        OpenAfterPublish:=False

        ' return true if saved
        PDF_Procedure = True   
        'wsBill.Visible = xlSheetHidden 'bill sheet HIDE [WILL BE USED LATER NOT SET UP]
    Else
        'if user cancels save dialog box
        myTitle = "Invoice Cancelled!"
        myMsg = "You've cancelled the request to save the invoice!"
        C_Response = MsgBox(myMsg, vbOKOnly, myTitle)
        wsCalc.Activate

        'return false if cancelled
        PDF_Procedure = False   
    End If

End Function

并向您的PDF_Bill子项添加条件

For Each wsBill In ThisWorkbook.Worksheets
    If wsBill.Name Like sCustName & "_BILL" & "*" Then
        If Module1_PDF.PDF_Procedure() = False Then
            Exit sub
        End if
    End If       
Next wsBill

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用户取消时保存对话框

来自分类Dev

无法添加参考。用户已取消退出保存对话框(OLE_E_PROMPSAVECANCELLED)

来自分类Dev

用户按下取消时将输入对话框重置并将输入保存到列表

来自分类Dev

用户取消对话框时选择要保存的文件夹而不使用宏

来自分类Dev

QGuiApplication退出对话框

来自分类Dev

TOAD 退出对话框?

来自分类Dev

关闭Android Studio时,确认退出对话框

来自分类Dev

对话框弹出时如何取消选中按钮?

来自分类Dev

对话框中检查文本框不为空时如何保存对话框

来自分类Dev

当用户键入“退出”,“退出”等时,终止所有对话框并退出MS Bot Framework中的对话

来自分类Dev

如何从对话框“取消”加载事件

来自分类Dev

带有“是/否/取消”的对话框

来自分类Dev

向对话框添加取消按钮

来自分类Dev

在Python中使用Tkinter退出时的消息框对话框

来自分类Dev

动态覆盖jqueryUI对话框按钮(保存,取消等以供用户选择)文本

来自分类Dev

单击对话框本身时关闭对话框

来自分类Dev

在Chrome和Safari中按退出键时的角度关闭模式对话框

来自分类Dev

当我通过对话框/ whiptail调用获取脚本时,Shell退出

来自分类Dev

单击取消按钮上的日期选择器对话框时如何完成活动

来自分类Dev

在Linux对话框脚本中按“取消”时出现意外的“}”

来自分类Dev

jQuery对话框循环事件

来自分类Dev

Tkinter对话框showinfo循环错误

来自分类Dev

Java对话框循环栏

来自分类Dev

在对话框“setCanceledOnTouchOutside()”中无法取消该框

来自分类Dev

将活动作为对话框打开时,如何将取消取消设置为活动?

来自分类Dev

为什么当我在确认对话框中单击“取消”时,为什么JS Confirm()不会取消提交动作?

来自分类Dev

将活动作为对话框打开时,如何将取消取消设置为活动?

来自分类Dev

保存文件对话框,限制名称

来自分类Dev

在Tkinter中保存文件对话框

Related 相关文章

  1. 1

    用户取消时保存对话框

  2. 2

    无法添加参考。用户已取消退出保存对话框(OLE_E_PROMPSAVECANCELLED)

  3. 3

    用户按下取消时将输入对话框重置并将输入保存到列表

  4. 4

    用户取消对话框时选择要保存的文件夹而不使用宏

  5. 5

    QGuiApplication退出对话框

  6. 6

    TOAD 退出对话框?

  7. 7

    关闭Android Studio时,确认退出对话框

  8. 8

    对话框弹出时如何取消选中按钮?

  9. 9

    对话框中检查文本框不为空时如何保存对话框

  10. 10

    当用户键入“退出”,“退出”等时,终止所有对话框并退出MS Bot Framework中的对话

  11. 11

    如何从对话框“取消”加载事件

  12. 12

    带有“是/否/取消”的对话框

  13. 13

    向对话框添加取消按钮

  14. 14

    在Python中使用Tkinter退出时的消息框对话框

  15. 15

    动态覆盖jqueryUI对话框按钮(保存,取消等以供用户选择)文本

  16. 16

    单击对话框本身时关闭对话框

  17. 17

    在Chrome和Safari中按退出键时的角度关闭模式对话框

  18. 18

    当我通过对话框/ whiptail调用获取脚本时,Shell退出

  19. 19

    单击取消按钮上的日期选择器对话框时如何完成活动

  20. 20

    在Linux对话框脚本中按“取消”时出现意外的“}”

  21. 21

    jQuery对话框循环事件

  22. 22

    Tkinter对话框showinfo循环错误

  23. 23

    Java对话框循环栏

  24. 24

    在对话框“setCanceledOnTouchOutside()”中无法取消该框

  25. 25

    将活动作为对话框打开时,如何将取消取消设置为活动?

  26. 26

    为什么当我在确认对话框中单击“取消”时,为什么JS Confirm()不会取消提交动作?

  27. 27

    将活动作为对话框打开时,如何将取消取消设置为活动?

  28. 28

    保存文件对话框,限制名称

  29. 29

    在Tkinter中保存文件对话框

热门标签

归档