เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้ ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
Page 1 of 2 12 LastLast
Results 1 to 10 of 15

Thread: ใช้ macro ในการ SetPrintArea ได้หรือไม่

  1. #1
    p_d
    Guest

    ใช้ macro ในการ SetPrintArea ได้หรือไม่

    อยากทราบว่าจากไฟล์ตัวอย่างเราสามารถใช้ macro มาช่วยในการ SetPrintArea ได้หรือไม่คะ เพราะเวลาสั่งต้องมานั่ง set และ clear ทีละvendor ทำให้เสียเวลามาก พอจะมีวิธีให้สั่งปริ้นครั้งเดียวออกมาแยก vendor ได้หรือไม่คะ ขอบคุณค่ะ

  2. #2
    gaka
    Guest
    ทดลองบันทึก Macro โดยทำการกำหนด Printarea จะได้
    ActiveSheet.PageSetup.PrintArea = "$A$1:$C$12"
    ดังนั้นถ้าต้องการพื้นที่ใหม่ ก็ใส่ลงไปแทน "$A$1:$C$12"
    สังเกตว่ามี " ปิดหัวท้าย แสดงว่าเป็น String ครับ

  3. #3
    p_d
    Guest
    ขอบคุณค่ะ คุณ gaka แต่ว่าดิฉันไม่ทราบ area ที่แน่นอนนะคะ เพราะแต่ละ vendor จะมีข้อมูลไม่เท่ากัน และหาก dowload ข้อมูลใหม่ข้อมูลก็จะเปลี่ยนไป แต่ช่วงที่เว้นว่างของแต่ะละ vendor จะเท่าเดิมเหมือนไฟล์แนบ พอจะมีสูตรไหนช่วยได้ไหมคะ เพราะต้องทำทุกเดือนซึ่งนานมากกว่าจะเสร็จ (ข้อมูลมีเยอะมาก)

  4. #4
    สมเกียรติ
    Guest
    ลองแนบแฟ้มตัวอย่างมาดูกันครับ ตารางไม่ต้องใหญ่ อยากดูว่าโครงสร้างตารางที่จะพิมพ์เป็นอย่างไร มีข้อมูลใดที่เป็นจุดชี้ในการกำหนดพื้นที่พิมพ์

    ที่จะยากก็คือ ต้องการให้แบ่งพิมพ์โดยมี Page Break ต่างไปจากเดิมในข้อมูลแต่ละครั้งด้วยไหม

  5. #5
    p_d
    Guest
    ตัวอย่าง report ที่ต้องการปริ้นค่ะ โดยแต่ละ vendor ต้องปริ้นแยกกันเพื่อส่งให้แต่ละ vendor

  6. #6
    สมเกียรติ
    Guest
    ดูตัวอย่างแล้วเห็นว่าแยกพิมพ์แต่ละตารางตามแต่ละชีทใช่ไหมครับ อย่างนี้ทำได้ไม่ยาก ให้ใช้ Macro Recorder บันทึกตามนี้
    1. กดปุ่ม Ctrl+Home เพื่อไปที่เซลล์แรกในตาราง
    2. กดปุ่ม Ctrl+Shift+End เพื่อเลือกเซลล์ไปจนถึงเซลล์สุดท้ายในตาราง
    3. สัง File > Print > กาช่อง Selection เพื่อให้พิมพ์พื้นที่ที่เลือกไว้
    จะได้รหัสตามนี้ ซึ่งนำไปใช้ได้กับทุกชีท
    Code:
    Sub MyPrint()
        Range("A1").Select
        Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
        Selection.PrintOut Copies:=1, Collate:=True
        Range("A1").Select
    End Sub
    เคยอ่านพบว่า xlLastCell จะหาตำแหน่งพลาดใน Excel รุ่นก่อนๆ ไม่ทราบว่ารุ่น 2003 นี้แก้ไขหรือยัง ถ้าพบว่าหาตำแหน่งพลาด ให้สั่ง Save File แล้วเปิดแฟ้มขึ้นมาใหม่ จะทำให้หา xlLastCell ได้ถูกต้อง

    แต่ถ้าในชีทหนึ่งๆ ต้องแบ่งแยกตารางออกไปพิมพ์แยกเรื่องกัน จะทำได้ยากครับ

  7. #7
    เอก
    Guest
    ถ้า print ทีละ vendor และข้อมูลมีการบันทึกไว้เป็นตารางฐานข้อมูล ผมคิดว่า ใช้วิธี เลือกรหัส vendor ที่ต้องการ แล้วดึงข้อมูลของ vendor นั้นๆ จากฐานข้อมูลมาแสดง แล้วสั่ง print ตามปกติ น่าจะง่ายกว่ามั๊ยครับ ไม่เห็นจำเป็นต้องใช้ Macro เลย

    ลองดูไฟล์ตัวอย่างครับ แนวคิดน่าจะคล้ายๆ กัน

  8. #8
    p_d
    Guest
    ขอขอบคุณทุกท่านที่ให้ความรู้เพิ่มเติมนะคะ แต่ว่า report ที่ดิฉันต้องการนั้นคงเป็นไปได้ยากแล้วหล่ะคะ อย่างที่ท่าน อ.สมเกียรติ บอกว่า "แต่ถ้าในชีทหนึ่งๆ ต้องแบ่งแยกตารางออกไปพิมพ์แยกเรื่องกัน จะทำได้ยากครับ" เพราะ vendor ทั้งหมดจะอยู่ในชีทเดียวกันต้องมา SetPrintArea เอง
    ส่วนที่คุณเอกบอกคงทำไม่ได้ค่ะ เพราะเราไม่มีฐานข้อมูลทั้งหมด แต่ข้อมูลมาจากการ download มาจากระบบซึ่งในแต่ละเดือน vendor ไม่เหมือนกันค่ะ
    ถ้าเป็นไปได้ยากก็คงต้องทำ manual เหมือนเดิมค่ะ
    ขอบคุณทุกท่านที่กรุณาเพิ่มเติมแนวทางให้นะคะ

  9. #9
    NEO889
    Guest

    ลองใช้ Pivot Table กับสูตร Vlookup ดูครับ

    แนะนำสร้างฐานข้อมูลใหม่ ดูที่ Sheet1 แล้ใช้Pivot Table กับสูตร Vlookup ดูสิครับแล้วทำการแก้ไขตกแต่งนิดหน่อยก็ได้แล้ว ไม่แน่ใจว่าตรงตามที่ต้องการหรือเปล่า ดูไฟล์แนบครับ

    Download Now

    พอคลิก Download Now แล้วจะปรากฏหน้าเว็บเพจใหม่ ให้เลื่อนลงมาด้านล่าง จะเจอตัวนับถอยหลัง รอให้ตัวนับถอยหลังนับจนเสร็จก่อน

  10. #10
    สมเกียรติ
    Guest
    Quote Originally Posted by p_d View Post
    ซึ่งในแต่ละเดือน vendor ไม่เหมือนกันค่ะ
    ลองแนบตัวอย่างที่มีหลายตารางในชีทเดียวกันที่ต้องการพิมพ์แยกกันมาดูหน่อยครับ และช่วยกำหนด Print Area/Page Break แบบที่ต้องการมาด้วย

Similar Threads

  1. Replies: 1
    Last Post: 13 Nov 2009, 10:31
  2. Replies: 5
    Last Post: 10 Nov 2008, 22:33
  3. macro ใช้ for...next
    By noong101 in forum Excel Expert Forum Library 2012 - 2007
    Replies: 3
    Last Post: 2 May 2008, 13:40
  4. ติดค่า #Value ในการ link ข้ามไฟล์
    By Nattawee in forum Excel Expert Forum Library 2012 - 2007
    Replies: 3
    Last Post: 20 Mar 2008, 10:21
  5. ต้องการคำสั่ง vba ในการ set path
    By stromrider in forum Excel Expert Forum Library 2012 - 2007
    Replies: 1
    Last Post: 13 Feb 2008, 10:14

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •