Page 1 of 1

สอบถาม CodeVB สั่งพิมพ์เป็น PDF จากหลายชีทให้เรียงต่อกันในไฟล์เดียว

Posted: Wed Jun 21, 2023 3:08 pm
by tigerwit
จากไฟล์ที่แนบ
ต้องการ สั่งพิมพ์เป็น PDF จากหลายชีทให้เรียงต่อกันในไฟล์เดียว ด้วยโค๊ด

Code: Select all

Sub PrintToPDF()
    Dim sFolderPath As String
    Dim Path As String
    Dim FName As String
    On Error Resume Next
    With ActiveSheet.PageSetup
        .Zoom = 100
    End With
    Application.ScreenUpdating = False
    
    sFolderPath = "C:\" & Range("A18").Value
    If Dir(sFolderPath, vbDirectory) = "" Then
        MkDir sFolderPath
    End If
    
    sFolderPath = "C:\" & Range("A18").Value
    If Dir(sFolderPath, vbDirectory) = "" Then
        MkDir sFolderPath
    End If
        
    sFolderPath = "C:\" & Range("A18").Value & "\" & "PDF"
    If Dir(sFolderPath, vbDirectory) = "" Then
        MkDir sFolderPath
    End If

    FName = ActiveSheet.Range("A19") & ".PDF"
    Application.DisplayAlerts = False
    ActiveWorkbook.ExportAsFixedFormat xlTypePDF, from:=1, to:=2, Filename:=sFolderPath & "\" & FName
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    MsgBox "ส่งออกไฟล์ไปไว้ที " & "C:\" & Range("A18").Value & "\" & "PDF" & "\" & FName

End Sub
ขอถามว่าจำนวนชีทที่มีอยู่ในไฟล์นั้น จะมีผลต่อการทำงานให้ช้าหรือเร็วขึ้นหรือไม่ครับ
(จากไฟล์จริง ๆ มี 30 ชีท สั่งพิมพ์แค่สองหน้าต่อกัน แต่ใช้เวลานานเกือบหนึ่งนาที)
ส่วนไฟล์ที่แนบมานี้ สร้างขึ้นมาใหม่ จะเร็วกว่าไฟล์จริงอยู่มากพอสมควร

Re: สอบถาม CodeVB สั่งพิมพ์เป็น PDF จากหลายชีทให้เรียงต่อกันในไฟล์เดียว

Posted: Wed Jun 21, 2023 11:06 pm
by snasui
:D เท่าที่ทดลองก็ Print ได้ช้าเหมือนกันครับ

Re: สอบถาม CodeVB สั่งพิมพ์เป็น PDF จากหลายชีทให้เรียงต่อกันในไฟล์เดียว

Posted: Thu Jun 22, 2023 12:22 pm
by tigerwit
ขอบคุณครับ