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

กรณีใช้งาน VBA จำเป็นต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ

Re: รวมไฟล์ 3 จากพื้นที่พิมพ์ รวมเป็น PDF ไฟล์เดียว 3 หน้า
Posted: Sat Oct 16, 2021 4:29 pm
by dang_xx
snasui wrote: Sat Oct 16, 2021 3:47 pm

กรณีใช้งาน VBA จำเป็นต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ
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

การโพสต์ 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
รับทราบครับ ขอบพระคุณมากครับ