Page 1 of 1

รวมไฟล์จาก 3 พื้นที่พิมพ์ รวมเป็น PDF ไฟล์เดียว 3 หน้า

Posted: Sat Oct 16, 2021 3:30 pm
by dang_xx
จากไฟล์ที่ผมแนบมา ผมมีสร้างปุ่มการพิมพ์โดยใช้คำสั่ง VBA เพื่อช่วยให้มีเลขหน้าตามช่อง Cell ที่ผมต้องการ แต่ปัญหาคือ ถ้าผมต้องการให้ทั้ง 3 หน้า (ตามที่ผมทำปุ่ม Print Preview) โดยกดปุ่ม Save PDF ให้ทั้ง 3 หน้า รวมเป็นไฟล์เดียว พร้อมทั้งมีเลขหน้าที่ต้องการ 1-3 ชื่อไฟล์เหมือนเดิม ในโฟล์เดอร์เดิม จะต้องเขียน CODE อย่างไรครับ

Re: รวมไฟล์ 3 จากพื้นที่พิมพ์ รวมเป็น PDF ไฟล์เดียว 3 หน้า

Posted: Sat Oct 16, 2021 3:47 pm
by snasui
:D กรณีใช้งาน VBA จำเป็นต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ :roll:

Re: รวมไฟล์ 3 จากพื้นที่พิมพ์ รวมเป็น PDF ไฟล์เดียว 3 หน้า

Posted: Sat Oct 16, 2021 4:29 pm
by dang_xx
snasui wrote: Sat Oct 16, 2021 3:47 pm :D กรณีใช้งาน VBA จำเป็นต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ :roll:
CODE ปัจจุบันทำไว้ดังนี้ครับ

Sub SavePDF()
Application.ScreenUpdating = True

ActiveSheet.PageSetup.PrintArea = "Area3"
[choice] = 3

Dim strFileName As String
strFileName = Application.GetSaveAsFilename( _
FileFilter:="PDF Files (*.pdf),*.pdf", _
Title:="Save As PDF")
If strFileName <> "False" Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=strFileName, _
OpenAfterPublish:=False
End If

Application.ScreenUpdating = True

End Sub

แต่ในตัวอย่างจะได้เพียงหน้าเดียวครับ ต้องการ 3 หน้า คือ "Area1"
[choice] = 1 ต่อด้วย "Area2"
[choice] = 2 ต่อด้วย "Area3"
[choice] = 3 ครับ

(ตามไฟล์แนบในโพสครับ)

Re: รวมไฟล์จาก 3 พื้นที่พิมพ์ รวมเป็น PDF ไฟล์เดียว 3 หน้า

Posted: Sat Oct 16, 2021 7:11 pm
by snasui
:D การโพสต์ Code จะต้องโพสต์ให้เป็นตัวอักษรในรูปแบบ Code (ซึ่งจะมีลักษณะดังด้านล่าง) ดูตัวอย่างในกฎการใช้บอร์ดข้อ 5 ด้านบนประกอบครับ

ตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

Sub SavePDF()
     Application.ScreenUpdating = True
     
    ' ActiveSheet.PageSetup.PrintArea = "Area3"
    ' [choice] = 3
    With ActiveSheet.PageSetup
        With .Parent
            ActiveWindow.View = xlPageBreakPreview
            .ResetAllPageBreaks
            .VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
            Set .HPageBreaks(1).Location = .Range("a36")
            Set .HPageBreaks(2).Location = .Range("a66")
            ActiveWindow.View = xlNormalView
        End With
        .PrintArea = "$A$1:$G$93"
        .FitToPagesWide = 1
        .FitToPagesTall = 3
        .PrintTitleRows = "$1:$5"
    End With

    Dim strFileName As String
    strFileName = Application.GetSaveAsFilename( _
        FileFilter:="PDF Files (*.pdf),*.pdf", _
        Title:="Save As PDF")
    If strFileName <> "False" Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=strFileName, _
            OpenAfterPublish:=False
    End If
    
    Application.ScreenUpdating = True
 
End Sub

Re: รวมไฟล์จาก 3 พื้นที่พิมพ์ รวมเป็น PDF ไฟล์เดียว 3 หน้า

Posted: Sat Oct 16, 2021 7:22 pm
by dang_xx
รับทราบครับ ขอบพระคุณมากครับ