มีคนถามผมมาว่าเค้ามีข้อมูลใน Excel ที่ต้อง Print ออกมาจำนวนมาก แต่มีปัญหาในการจัดหน้าไม่รู้จะทำยังไงให้ง่าย เนื่องจากว่าจุดแบ่งหน้าในแต่ละหน้าก็ดันไปไม่เท่ากัน (แต่ละหน้าจำนวนข้อมูลไม่เท่ากัน) การจะมานั่งแบ่งหน้า insert page break เอง ก็จะเสียเวลามากๆ
ใครมีปัญหาแบบนี้ก็สบายใจได้เลย เพราะบทความนี้ผมจะมาบอกแนวทางแก้ปัญหาให้เอง ซึ่งทำไม่ยากอย่างที่คิด แถมมีความยืดหยุ่นพอที่จะเอาไปประยุกต์ใช้กัยงานไหนก็ได้ด้วย
ข้อมูลต้นฉบับ
ดาวน์โหลดไฟล์ได้ที่นี่
ผมมีข้อมูลอยู่จำนวนมาก (5000 บรรทัด) ที่เรียงตามคอลัมน์ร้านค้า (StoreKey) แล้วต้องการจะ print ออกมาเป็น pdf
ซึ่งความยากก็คือ เราต้องการแบ่งหน้าทุกครั้งที่มีขึ้นร้านค้าใหม่เสมอ (แต่ถ้าร้านนึงขายเยอะมาก ก็อาจมีหลายหน้าได้นะ)
ตั้งค่าเบื้องต้น
ขั้นตอนแรกที่ผมจะทำก็คือ สั่งตั้งค่าการ print ให้ความกว้าง fit พอดีกับกระดาษ 1 หน้า และสั่งให้มัน repeat การ print หัวตารางบรรทัดที่ 1 เสมอ ซึ่งส่วนนี้ทำได้ง่ายมากๆ
กำหนดจุดที่จะแบ่งหน้า Page Break
ก่อนอื่น เราจะเขียนสูตรขึ้นมา เพื่อให้ mark จุดที่ต้องการจะแบ่งหน้าไว้ก่อน
ในช่อง I2 (ถัดจากข้อมูล) ผมจะใช้สูตร IF เช็คว่าเลข StoreKey มีการเปลี่ยนหรือไม่? ดังนี้
=IF(E2<>E1,"y","n")จากนั้น Copy ยาวลงไปข้างล่าง เราก็จะได้จุดที่จะทำการ Insert Page Break แล้ว ลอง scroll ลงไปดูข้างล่างได้
ทำยังไงให้ Insert Page Break ในจุดที่ต้องการ?
มาถึงตรงนี้เราจะต้องใช้ Code VBA เล็กๆ น้อยๆ ในการช่วยแล้ว โดยเราจะใส่ Code นี้ลงไปใน Module ของ VBA
โดยอย่าลืมเปิด Ribbon Developer ขึ้นมาก่อน (อยู่ใน Excel Option->Customize Ribbon)
จากนั้น กด Alt+F11 เพื่อเข้าสู่ VB Editor แล้วคลิ๊กขวา Insert Module ตามรูป
แล้ว Paste Code นี้ลงไป เพื่อให้มันวน Loop ใส่ Page Break ในจุดที่เรา Mark ตัว y เอาไว้
Sub InsertBreak_At_Mark() Dim i As Long Dim firstAddress As String Application.ScreenUpdating = False With Range(ActiveCell, ActiveCell.End(xlDown)) Set c = .Find("y", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do 'MsgBox (c.Address) c.PageBreak = xlPageBreakManual Set c = .FindNext(c) Loop While Not c Is Nothing And firstAddress <> c.Address End If End With Application.ScreenUpdating = True End Subจากนั้นกลับไปยังหน้า Excel แล้วให้เลือกคอลัมน์ I ที่เราเขียน y/n ไว้ แล้ว Run Code ตามรูป
เท่านี้มันก็จะกำหนดพื้นที่ Mark ให้เรียบร้อยแล้ว ลองกด Page Break Preview ดูได้
เก็บตกจุด Break เกิน ที่บรรทัดที่ 2
อย่างไรก็ตามตอนนี้สุตรเราดัน Mark ว่าจะ Break ที่บรรทัดที่ 2 ด้วย ซึ่งไม่ Makesense ดังนั้นถ้าเราแก้ค่าหรือแก้สูตรให้บรรทัดที่ 2 เป็น n ไปก่อนได้ก็จะดีกว่า หรือจะไป remove page break เองก็ได้เช่นกัน โดยเลือกบรรทัดที่ 2 ไว้ แล้ว Remove Page break ดังรูป
เมื่อเราต้องการสั่งปริ้นข้อมูลเอกสารให้มีขนาดพอดีกับกระดาษ A4 หน้าเดียว เพื่อความสะดวกในการดูข้อมูลไม่ต้องเปิดเอกสารหลายหน้าให้วุ่นวาย แต่เมื่อนำข้อมูลหลายๆหน้ามารวมกันในหน้าเดียวจะทำให้ตัวอักษรในเอกสารของเราเล็กลง
//www.youtube.com/watch?v=yyoUisA9WYw&feature=emb_title
1. เปิดข้อมูลที่เราต้องการปริ้นขึ้นมา
2. เมื่อมีข้อมูลเรียบร้อยแล้วเลือก File > Print จะเห็นได้ว่าข้อมูลที่เราต้องการปริ้นจะไม่ครบตามที่เราต้องการ
📌 ใช้โปรแกรมครั้งแรก บริการหลังการขาย ลง Windows ใหม่ & เปลี่ยนฮาร์ดดิส ใช้สิทธิ์เปลี่ยนคอม ทดสอบเครื่องพิมพ์ การสำรองข้อมูล การเรียกคืนข้อมูล ทำข้อมูลตั้งต้น เงื่อนไขข้อตกลง ลืมรหัส admin
รายงานใน excel จะ Print อย่างไรให้พอดีกับ A4
รายงานที่โปรแกรมไฮเจีย export เป็น excel ได้นั้นเพื่อให้ผู้ใช้งานได้นำข้อมูลออกไปทำต่อด้วยโปรแกรม excel อาจมีรายละเอียดคอลัมน์ที่มากเกินระยะขอบของ A4 เมื่อต้องการสั่ง Print
โปรแกรม excel เองมีการปรับ scale เพื่อให้พอดีกับหน้ากว้างของ A4 ได้โดยที่เราไม่ต้องขยับความกว้างคอลัมน์เองทีละคอลัมน์
วิธีการ Print แบบพอดีขอบ A4 ในหน้าเดียว
ตัวอย่างรายงานที่มีคอลัมน์เกินขอบ A4ให้กด Print ตามปกติเพื่อดูตัวอย่างก่อนพิมพ์ ตามตัวอย่างภาพต่อไปนี้จะเห็นว่ามีคอลัมน์ล้นขอบออกไปทำให้ถูกปัดเป็น 2 หน้า
หัวข้อ Settings ให้เลือก Scale ใหม่เป็น Fit sheet on One Page เพื่อให้ข้อมูลใน Sheet นั้น ๆ พอดีกับ 1 หน้ากระดาษ
เมื่อเลือกเรียบร้อยแล้วจะเห็นว่าพอดี 1 หน้ากระดาษ A4 เรียบร้อยแล้ว
ในส่วนนี้อาจมีการปรับเพิ่มเติมเกี่ยวกับ Orientation ให้เป็นแนวตั้ง (Portrait) หรือ แนวนอน (Landscape) ได้ตามความต้องการ จากนั้นกด Print ได้เลยตามปกติ
ตัวอย่างการ Print ครบคอลัมน์ใน 1 หน้ากระดาษ
เนื้อหาหน้านี้ปรับปรุงล่าสุดเมื่อ : 15/09/2564 | หน้าแรก | การสั่งซื้อ
MOST RECENT
รายงาน ข.ย.9, ข.ย.10, ข.ย.11, ข.ย.12, ข.ย.13 | GPP
รับข้อความแจ้งเตือน บริการ LINE Notify
รายงาน ข.ย.11 v2 ครบจบทุกคำถามการตรวจ
การใช้งานใบสั่งยาออนไลน์ โครงการรับยาที่ร้านยา (สปสช.)
การทำป้ายราคา/บาร์โค้ด บนกระดาษ A4
ตั้งค่าเครื่องพิมพ์ฉลาก 2 เครื่อง พิมพ์ได้ 2 ขนาด
การติดตั้งไดรเวอร์เครื่องพิมพ์สลิป EPSON TM Receipt
การปรับ ราคาขาย ด้วยไฟล์ excel
ฐานข้อมูลสินค้าและฉลากยา สำหรับผู้เริ่มต้น
กราฟสรุปยอดขายประจำปี เทียบกับปีอื่น มีแยกไตรมาส