我有一些代码尝试将11x17纸张设置为默认值...
On Error GoTo PageSizeErr
ActiveSheet.PageSetup.PaperSize = xlPaperTabloid
'这里有更多代码
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
--------------代码示例结束-----------------
当它到达第二个'ActivateSheet.PageSetup ...行时,我得到一个错误对话框而不是去找PageErr2标签。 (我选择的打印机不支持11x17,这正是我要测试的。)
需要多个错误处理程序,因为不同的打印机驱动程序似乎以不同的方式处理设置。
为什么没有第二个'On Error goto'语句被识别?
答案 0 :(得分:3)
您不能在错误处理程序中使用错误goto。 见http://www.cpearson.com/excel/errorhandling.htm
也许尝试这样的事情:
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