Page 1 of 1

รบกวนชี้เนะ code vba ทีครับ

Posted: Fri Mar 23, 2012 12:39 pm
by snoopy1150
เรียน ท่านผู้รู้ ครับ

คือผมอยากทราบ Code vba ตอนที่สั่ง print แล้วเรากด cancel แต่ยังให้ vba ทำงานอยู่และไม่ฟ้อง Run-time

จะต้องเขียนยังไงครับ

ผมได้แนบ code มาให้ดูด้วยครับ

Code: Select all

Sub PrintOutput()
    Dim Apt As String
    If Application.Dialogs(xlDialogPrinterSetup).Show Then
        Apt = Application.ActivePrinter
    End If
    Application.ActivePrinter = Apt
    Range("A1:F35").PrintOut
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub

Re: รบกวนชี้เนะ code vba ทีครับ

Posted: Fri Mar 23, 2012 2:03 pm
by snasui
:D ถ้าสั่ง Cancel ก็ควร Cancel ครับ ยังไม่เข้าใจความมุ่งหมายของการใช้งานตามที่ถามครับ

Re: รบกวนชี้เนะ code vba ทีครับ

Posted: Fri Mar 23, 2012 4:51 pm
by snoopy1150
คือเวลา Cancel แล้วแต่ Run-time มันฟ้องครับ
แต่สิ่งที่ต้องการคือเวลากด Cancel แล้วไม่อยากให้มันฟ้องครับ

ตามภาพที่แนบมาครับ

Re: รบกวนชี้เนะ code vba ทีครับ

Posted: Fri Mar 23, 2012 4:54 pm
by logic
:tt: หากใช้ On error resume next มาช่วยจะได้ผลไหมครับ

Code: Select all

Sub PrintOutput()
    Dim Apt As String
    on error resume next
    If Application.Dialogs(xlDialogPrinterSetup).Show Then
        Apt = Application.ActivePrinter
    End If
    Application.ActivePrinter = Apt
    Range("A1:F35").PrintOut
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub

Re: รบกวนชี้เนะ code vba ทีครับ

Posted: Fri Mar 23, 2012 6:38 pm
by tupthai
snoopy1150 wrote:

Code: Select all

Sub PrintOutput()
    Dim Apt As String
    Apt = Application.ActivePrinter
    If Application.Dialogs(xlDialogPrinterSetup).Show Then
        Apt = Application.ActivePrinter
    End If
    Application.ActivePrinter = Apt
    Range("A1:F35").PrintOut
    ActiveWorkbook.Save
    ActiveWorkbook.Close
End Sub
ลองทดสอบดูครับ
ใส่ Apt = Application.ActivePrinter ไว้ก่อน If Application.Dialogs......