Excel: Set header and footer for all sheets of a workbook
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 601   4
URL.หัวข้อ / URL
Excel: Set header and footer for all sheets of a workbook

ถามไว้ที่ http://www.utteraccess.com/forums/showflat.php?Cat=&Board=ms_excel&Number=191047&Forum=All_Forums&Words=TimK&Match=Username&Searchpage=0&Limit=25&Old=allposts&Main=191021&Search=true#Post191047

เขาต้องการที่จะเข้าไปใส่ Header และ Footer ในการพิมพ์งานใน Excel

Sub AddHeaderFooter()
Dim x As Integer

For x = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets(x).Select
With ActiveSheet.PageSetup
.CenterHeader = "&A" ' Sheet Name.
.CenterFooter = "&F" ' Current File Name.
End With
Next x

End Sub

ช่วงนี้ผมเองก็ต้องทำงานกับไฟล์ Excel ที่โอนข้อมูลจาก Access มาอยู่เหมือนกัน และได้มีโอกาสใช้โค้ดข้างต้นด้วย

ลองคิดดูคงจะไม่สนุกแน่ถ้าต้องเข้าไปกำหนดเองที่ละอัน ซึ่งของผมเองมีตั้ง 1 Sheets

ส่วนวันก่อนผมได้พูดถึงการ Save รูปกราฟใน Excel ให้ไปเป็นไฟล์ Gif เพื่อนำไปใช้กับโปรแกรม Word ให้ทีหนึ่งแล้ว

ก็อยากจะขอให้ตัวอย่างโค้ดในที่นี้ไว้อีกครั้งแล้วกัน

Sub Create_GIF()
Dim mychart As Chart
Dim i As Integer, x As Integer
For x = 1 To ActiveWorkbook.Sheets.Count
For i = 1 To 4
Set mychart = Sheets(x).ChartObjects(i).Chart
mychart.Export Filename:="c:\Mychart" & i & x & ".gif", FilterName:="GIF"
Next i
Next x
End Sub

จากโค้ดข้างบน มันจะวิ่งไปที่ sheet แรกจนถึงอันสุดท้าย แล้ววิ่งไปที่ chart อันแรกใน Sheet นั้นๆ แล้ว แปลงให้เป็นไฟล์ Gif แล้วเก็บไว้ในห้อง c:\ ให้ ไล่ไปเรื่อยๆ จนครบหมด

การทำงานบางครั้งเราไม่ได้ทำแค่ใน Access ก็จบ แต่ต้องนำข้อมูลไปสร้างใน Excel หรือส่งให้ Word ต่ออีกที ซึ่งเหมาะสำหรับพิมพ์รายงานสรุป ได้ดีกว่า Access ในงานบางเรื่องครับ


4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R02588
การกำหนดข้อความเดียวกันบน Page Header หรือ Page Footer พร้อมกันทีเดียวหลายๆ Sheet
เราสามารถทำได้พร้อมกัน ด้วยการเลือก sheet พร้อมกันหลายๆ sheet (ใช้ Ctrl) แล้วเราก็ไปกำหนด Page Header หรือ Page Footer
นอกจากนี้ ถ้าเราพิมพ์ข้อความอะไรลงไปใน Cell มันยังมีผลกระทบต่อทุก Sheet อีกด้วยนะเนี่ย

จริงๆ แล้ว ผมก็เพิ่งทราบ ไม่รู้เป็นไงพออ่านข้อความนี้แล้วผมก็นึกวิธีนี้ได้ ผมเคยประสบปัญหาว่าต้องการกำหนดให้ทุก Sheet มี Page Header/Footer เหมือนกัน ซึ่งต้องเสียเวลาอย่างมากในการทำงานเหมือนกัน
2 @R02590
ถามอาจารย์สุภาพต่อครับ ไม่ทราบต้องนำโค๊ด Header และ Footer ดังกล่าวไปใส่ไว้ตรงไหนครับไม่ทราบจริงๆ เผื่อวันข้างหน้ามีโอกาสได้ใช้บ้าง และอีกอย่างหนึ่งที่คิดจะถามนานแล้ว คือเราสามารถจะ ลิงค์ ตารางจาก Fox มาใน Access โดยตรงได้หรือเปล่าครับ
3 @R02600
วิธีการของ MR.CHA ก็ใช้ได้ดีที่เดียว ไม่ต้องพึ่งโค้ดเลยครับ

ส่วนคำถามของคุณ ภาณุวัฒน์ ก็ให้ไปที่เมนู Tools>Macro>Visual Basic Editor>แล้วไปที่เมนู Insert>Module จากนั้นก็ Paste โค้ดลงไปครับ

เมื่อต้องการใช้งานก็ให้กด F5 หรือจะนำไปสร้างเป็นปุ่มบน Toolbar ก็ได้ครับ

4 @R03222
ขอถามเพิ่มเติมนะครับ แล้วถ้าต้องการให้ Format บน Excel ในส่วนของวันที่เป็นดังนี้ 18 January 2003 ไม่ทราบต้องเขียนโค๊ดอย่างไรครับ (ข้อมูลโอนมาจาก Table ใน Access ซึ่ง Format จะไม่ตามมาด้วยครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.8824s