开发者

The second of 2 'On Error goto ' statements gets ignored

开发者 https://www.devze.com 2023-04-02 17:56 出处:网络
I have some code that tries to set 11x17 paper as a default开发者_运维问答... On Error GoTo PageSizeErr

I have some code that tries to set 11x17 paper as a default开发者_运维问答...

        On Error GoTo PageSizeErr
        ActiveSheet.PageSetup.PaperSize = xlPaperTabloid

' more code here

PageSizeErr:
    On Error GoTo PageErr2
    ActiveSheet.PageSetup.PaperSize = xlPaper11x17  'try another 11x17 driver definition
    GoTo resumePrinting
PageErr2:
    MsgBox ("There's a problem setting Tabloid paper for the printer you have selected." & Chr(10) _
    & "If you have an 11x17 printer selected, please contact EMBC, otherwise, try a different printer.")
    Exit Sub

-------------- end of code sample -----------------

When it gets to the second 'ActivateSheet.PageSetup... line, instead of going to PageErr2 lable I get an error dialog box. (I have a printer selected that doesn't support 11x17 which is what I'm trying to test for.)

The multiple error handlers are needed as it seems that different printer drivers handle the setting the differently.

Why doesn't the second 'On Error goto ' statement get recognized?


You can't use on error goto within an error handler. See http://www.cpearson.com/excel/errorhandling.htm

Maybe try something like this:

Sub Tester()

Dim pSize As XlPaperSize

    pSize = xlPaperTabloid


    On Error GoTo haveError:
    ActiveSheet.PageSetup.PaperSize = pSize
    'print stuff...

    Exit Sub

haveveError:
    If pSize = xlPaperTabloid Then
        pSize = xlPaper11x17
        Resume
    End If
    MsgBox ("Couldn't print using tabloid or 11x17")

End Sub
0

精彩评论

暂无评论...
验证码 换一张
取 消