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

Thread: คำสั่ง VBA ในการ print ข้อมูลทีละแถวออกมาทีละหน้า

  1. #1
    ekachai_isuan
    Guest

    คำสั่ง VBA ในการ print ข้อมูลทีละแถวออกมาทีละหน้า

    สวัสดีครับ
    ผมมีปัญหาเกี่ยวกับ การเขียนคำสั่ง VBA มารบกวนถาม พี่ๆ และเพื่อนๆทุกคนครับ
    ตัวอย่างโจทย์ที่มีปัญหาครับ
    A B C
    1 2 3
    4 5 6
    7 8
    จากโจทย์นะครับ จะเห็นว่า แถวที่ 1 มีข้อมูล คือ 1 2 และ 3
    แถวที่ 2 มีข้อมูลคือ 4 5 และ 6
    แถวที่ 3 มีข้อมูลคือ 7 และ 8
    ความต้องการของผมคือ เขียนคำสั่ง VBA เพื่อ print ข้อมูลที่อยู่ในแถว ออกมาทีละหน้า
    ผลลัพธ์ ที่จะได้คือ หน้าแรก ต้องได้ ข้อมูลคือ 1 2 และ 3 หน้า 2 ต้องได้ข้อมูลคือ 4 5 และ 6
    หน้า 3 ต้องได้ ข้อมูลคือ 7 และ 8 โดย การกดคำสั่ง print เพียงครั้งเดียว ก็ได้ ข้อมูลที่ต้องการออกมาทั้งหมด รบกวน พี่ๆ เพื่อน ช่วยตอบคำถามด้วยนะครับ ผมได้ แนบ file มาด้วย 1 file ขอบคุณมากครับ

  2. #2
    pichartyapan
    Guest
    Quote Originally Posted by ekachai_isuan View Post
    สวัสดีครับ
    ผมมีปัญหาเกี่ยวกับ การเขียนคำสั่ง VBA มารบกวนถาม พี่ๆ และเพื่อนๆทุกคนครับ
    ตัวอย่างโจทย์ที่มีปัญหาครับ
    A B C
    1 2 3
    4 5 6
    7 8
    จากโจทย์นะครับ จะเห็นว่า แถวที่ 1 มีข้อมูล คือ 1 2 และ 3
    แถวที่ 2 มีข้อมูลคือ 4 5 และ 6
    แถวที่ 3 มีข้อมูลคือ 7 และ 8
    ความต้องการของผมคือ เขียนคำสั่ง VBA เพื่อ print ข้อมูลที่อยู่ในแถว ออกมาทีละหน้า
    ผลลัพธ์ ที่จะได้คือ หน้าแรก ต้องได้ ข้อมูลคือ 1 2 และ 3 หน้า 2 ต้องได้ข้อมูลคือ 4 5 และ 6
    หน้า 3 ต้องได้ ข้อมูลคือ 7 และ 8 โดย การกดคำสั่ง print เพียงครั้งเดียว ก็ได้ ข้อมูลที่ต้องการออกมาทั้งหมด รบกวน พี่ๆ เพื่อน ช่วยตอบคำถามด้วยนะครับ ผมได้ แนบ file มาด้วย 1 file ขอบคุณมากครับ
    ทำไมต้องใช้ vba ด้วยครับ เพราะเราสามารถใช้ page break ได้นี่ครับ ได้ผลเหมือนที่ต้องการเลย หรือมีเงื่อนไขพิเศษอื่นใดครับ

  3. #3
    ekachai_isuan
    Guest
    Quote Originally Posted by pichartyapan View Post
    ทำไมต้องใช้ vba ด้วยครับ เพราะเราสามารถใช้ page break ได้นี่ครับ ได้ผลเหมือนที่ต้องการเลย หรือมีเงื่อนไขพิเศษอื่นใดครับ
    ที่ต้องการเป็น คำสั่งใน vba เพราะว่ามีการ เขียนโปรแกรม เพื่อค้นหาข้อมูล อยู่ก่อนแล้ว จึงอยากให้มีชุดคำสั่งอยู่ในตัวเดียวกันเลย เพื่อสะดวกกับ user ในการใช้โปรแกรมครับ และ อยากรู้คำสั่งนี้ เพื่อนำไปใช้เป็นตัวอย่างเขียนโปรแกรม ที่เป็นประโยชน์ กับโปรแกรมตัวต่อไปครับ

  4. #4
    pichartyapan
    Guest
    Quote Originally Posted by ekachai_isuan View Post
    ที่ต้องการเป็น คำสั่งใน vba เพราะว่ามีการ เขียนโปรแกรม เพื่อค้นหาข้อมูล อยู่ก่อนแล้ว จึงอยากให้มีชุดคำสั่งอยู่ในตัวเดียวกันเลย เพื่อสะดวกกับ user ในการใช้โปรแกรมครับ และ อยากรู้คำสั่งนี้ เพื่อนำไปใช้เป็นตัวอย่างเขียนโปรแกรม ที่เป็นประโยชน์ กับโปรแกรมตัวต่อไปครับ
    ไม่ทราบว่าเคยอ่านที่นี่หรือยัง น่าจะเป็นสิ่งที่ต้องการ แต่อาจจะต้องประยุกต์นิดหน่อย (เห็นพูดว่าพอจะได้ใช้ code อยู่บ้างแล้ว น่าจะช่วยได้ครับ) ลองดูครับ
    http://www.excelexperttraining.com/b...nual000689.php

  5. #5
    ekachai_isuan
    Guest
    Quote Originally Posted by pichartyapan View Post
    ไม่ทราบว่าเคยอ่านที่นี่หรือยัง น่าจะเป็นสิ่งที่ต้องการ แต่อาจจะต้องประยุกต์นิดหน่อย (เห็นพูดว่าพอจะได้ใช้ code อยู่บ้างแล้ว น่าจะช่วยได้ครับ) ลองดูครับ
    http://www.excelexperttraining.com/b...nual000689.php
    ขอบคุณครับ สำหรับตัวอย่าง code ที่แนะนำมา ผมลองทำและเขียนออกมาได้แล้ว แต่ยังติดตรง ที่เวลาวน loop มันยัง โชว์ออกมาทีละหน้า แล้วต้อง print ทีละครั้งที่มันวน loop
    อยากได้เพิ่มเติมคือ เมื่อมีการกดที่คำสั่ง print ให้รวมข้อมูลแล้ว แสดงผลการ preview ออกมาทั้ง 3 หน้ารวมกันเลย แล้วถ้าต้องการจะเลือก print หน้าไหน ก็แล้วแต่ความต้องการของเราเองครับ รบกวนเพื่อนๆ พี่ๆ ช่วยดู code ในโปรแกรมที่ผมแนบมาใหม่ แล้วช่วยชี้แนะ เพิ่มเติมด้วยนะครับ ขอบคุณมากครับ

  6. #6
    vajra
    Guest
    Code:
    Public Sub RowPrint()
    Range(Cells(1, 1), Cells(65536, 1).End(xlUp)).Select
    For Each i In Selection
    Range(i, Cells(i.Row, 3)).PrintPreview
    Next
    End Sub

  7. #7
    ekachai_isuan
    Guest
    Quote Originally Posted by vajra View Post
    Code:
    Public Sub RowPrint()
    Range(Cells(1, 1), Cells(65536, 1).End(xlUp)).Select
    For Each i In Selection
    Range(i, Cells(i.Row, 3)).PrintPreview
    Next
    End Sub
    ขอบคุณสำหรับ code ครับ code นี้ปรับปรุงที่ผมเขียนไว้ดีกว่าเดิม แต่ยังไม่สามารถ รวมหน้า preview ได้ภายในครั้งเดียวครับ ยังคงต้อง ปิดไปทีละหน้า แล้วจึงจะขึ้นแสดง หน้าต่อไป อยากให้สามารถ แสดงข้อมูล ทีละหน้า แสดงออกมาทั้งหมด ในการใช้คำสั่ง print เพียงครั้ง เหมือนกับเก็บ tmp เอาไว้ครับ ขอบคุณ คุณ vajra มากครับ

  8. #8
    อรวีร์
    Guest

    Smile

    ลอง Code นี้ดูค่ะ
    Code:
    Sub Print_1_Line()
    LastRow = [A65535].End(xlUp).Row
    For R = 2 To LastRow
        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(R, 1)
    Next
    ActiveSheet.PageSetup.PrintArea = "$A$1:$C$" & LastRow
    ActiveWindow.SelectedSheets.PrintPreview
    End Sub
     
    Sub ClearPageBreaks()
    For Each pb In ActiveSheet.HPageBreaks
        pb.Delete
    Next
    End Sub

  9. #9
    ekachai_isuan
    Guest
    Quote Originally Posted by อรวีร์ View Post
    ลอง Code นี้ดูค่ะ
    Code:
    Sub Print_1_Line()
    LastRow = [A65535].End(xlUp).Row
    For R = 2 To LastRow
        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(R, 1)
    Next
    ActiveSheet.PageSetup.PrintArea = "$A$1:$C$" & LastRow
    ActiveWindow.SelectedSheets.PrintPreview
    End Sub
     
    Sub ClearPageBreaks()
    For Each pb In ActiveSheet.HPageBreaks
        pb.Delete
    Next
    End Sub
    ขอบคุณ อ.อรวีร์ สำหรับ code ครับ ผมได้นำไปใช้งานแล้ว ได้ตรงตามความต้องการพอดี ครับ
    ขอบคุณมากครับ

Similar Threads

  1. Print & Print Preview ออกค่าเดิมค่ะ
    By sirikulc in forum Excel Expert Forum Library 2012 - 2007
    Replies: 1
    Last Post: 5 May 2010, 10:34
  2. Replies: 2
    Last Post: 27 Mar 2010, 10:05
  3. ใช้ macro ในการ SetPrintArea ได้หรือไม่
    By p_d in forum Excel Expert Forum Library 2012 - 2007
    Replies: 14
    Last Post: 30 Jul 2009, 14:31
  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
  •