:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#1

Post by piman »

สวัสดีครับ

ส่วนที่ 1
ผมได้ทำการรันฟอร์มขึ้นมา เลือกข้อมูล "กลุ่มงาน" ในช่องค้นหาโดย และระบุ "อำนวยการ" ในช่องคำค้นหา จากนั้นจึงกดปุ่มรายงาน เพื่อนทำการสั่ง Print เป็นไฟล์ PDF ครับ ได้ไฟล์ตามที่ต้องการ(ตามไฟล์แนบ) แต่แต่ละ Column มีขนาดเท่ากันทั้งหมดและจะมีหน้าว่างๆแถมมาด้วยครับ (ในส่วนนี้สามารถปรับขนาดตามที่เราต้องการได้หรือเปล่าครับและหน้าว่างๆสามารถลบออกได้หรือไม่ครับ)

ส่วนที่ 2
สามารถ เลือกข้อมูลบาง Column มาแสดงบน List box ได้หรือไม่ครับ เช่น Column A,C,F เป็นต้นครับ

ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#2

Post by snasui »

:D จาก Code sh.PageSetup.PrintArea = "A:K" ให้ปรับเป็นพื้นที่ที่ต้องการ Print ไม่ใช่เลือกทั้งคอลัมน์ครับ

ก่อนจะ Print จริงให้เลือก Print Preview เพื่อดูข้อมูลก่อน Print ด้วยว่ามีลักษณะเป็นแบบไหน อย่างไร เช่น sh.PrintPreview หากเห็นว่าได้ตรงกับความต้องการแล้วค่อยลบ Code นี้ออกหรือ Mark เป็น Comment เอาไว้ครับ

ในการ Show UserForm เพื่อให้สามารถคลิก Object อื่นได้ให้เพิ่ม vbmodeless เข้าไปด้วย เช่น userform1.show vbmoedless หลังทดสอบและใช้การได้แล้วค่อย Mark ทิ้ง

การป้องกันและการปลดการป้องกันไม่ควรทำเป็นรายบรรทัด ลักษณะที่ควรจะเป็นคือ ปลดการป้องกันที่บรรทัดแรกแล้วป้องกันเอาไว้ใหม่ที่บรรทัดสุดท้าย เช่นนี้เป็นต้น

การเลือกเพิ่มรายการเป็นรายคอลัมน์ให้ใช้วิธี Loop รายการเข้าไปวางใน ListBox ไม่ใช่ใช้ RowSource ครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#3

Post by piman »

ขอบคุณครับอาจารย์

ในส่วนของการปรับพื้นที่ Print เนื่องจากแต่ละหัวข้อที่ผมเลือกข้อมูลในส่วนของ Row จะแตกต่างกันไปครับเช่น ผมเลือกข้อมูลโดยกลุ่มงาน บางกลุ่มงาน อาจจะมี 10 คน บางกลุ่มงาน อาจจะมี 20 คนครับ ในส่วนของการปรับพื้นที่ของการ Print ใน Row สามารถกำหนดความยืดหยุ่นได้หรือไม่ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#4

Post by snasui »

:D การเลือกข้อมูลตามที่ต้องการใช้งานเป็นความสามารถปกติของ Code อยู่แล้วครับ

ปกติหากต้องการจะ Print ข้อมูลที่พื้นที่ไม่ติดกันควรจะทำการซ่อนบรรทัดที่ไม่ต้องการเสียก่อนแล้วค่อยพิมพ์ หรือสามารถเลือกที่จะนำข้อมูลที่เข้าเงื่อนไปไปวางในอีกพื้นที่เพื่อพิมพ์ เช่นนี้เป็นต้นครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#5

Post by piman »

ขอบคุณครับอาจารย์
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#6

Post by piman »

snasui wrote: Sun Aug 30, 2020 8:33 pm
การเลือกเพิ่มรายการเป็นรายคอลัมน์ให้ใช้วิธี Loop รายการเข้าไปวางใน ListBox ไม่ใช่ใช้ RowSource ครับ
สอบถามเพิ่มเติมหน่อยครับอาจารย์ จากที่อาจารย์แนะนำในส่วนของข้อมูลที่นำมาแสดงใน List box จากใน code ผมใช้เป็น RowSource
อาจารย์แนะนำให้ใช้วิธี Loop ก็คือเปลี่ยน เฉพาะ Code ส่วนนี้ใช่เปล่าครับอาจารย์

Code: Select all

 If iRow > 1 Then
            .lstDatareport.RowSource = "Datareport!A2:I" & iRow
        Else
            .lstDatareport.RowSource = "Datareport!A2:I2"
        End If 
User avatar
logic
Gold
Gold
Posts: 1510
Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#7

Post by logic »

แบบนั้นก็คือ rowsource แหละครับ ดูตัวอย่างที่อาจารย์ตอบไว้เป็นแนวครับ ~~> https://www.snasui.com/viewtopic.php?t=11862#p73311
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#8

Post by piman »

ขอบคุณมากครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#9

Post by piman »

สอบถามเพิ่มเติมครับ ตอนนี้ข้อมูลที่ต้องการ สามารถดึงมาแสดงได้แล้วครับ

แต่หัวคอลัมน์ไม่มาแสดงให้ด้วย ผมลองเขียน

Code: Select all

 Me.lstDatareport.Additem "ลำดับ" 
ก็ไม่มีการแสดงข้อมูลครับ
You do not have the required permissions to view the files attached to this post.
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#10

Post by piman »

เพิ่มเติมอีกนิดครับ พอผมจะนำข้อมูลมาแสดงบน List Box ประมาณ 14 Column ขึ้น Error ครับ สูงสุดจะได้ประมาณ 9 Column ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#11

Post by snasui »

:D เขียน Code ไว้ที่ Procedure ใด เขียนไว้อย่างไร ติดบรรทัดไหน กรุณาแจ้งด้วยครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#12

Post by piman »

ขอโทษทีครับอาจารย์ ผมส่งไฟล์ให้ ผมแนบไฟล์ใหม่มาให้แล้ว

กดรัน แล้วขึ้น error เลยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#13

Post by snasui »

:D ลองใช้ Array เข้ามาช่วย ดูตัวอย่างที่นี่ครับ Assign Array to ListBox
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#14

Post by piman »

ผมลองนำ Code ตัวอย่างมาปรับใช้ พอทำการกดรัน ขึ้น error 1004 ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#15

Post by snasui »

:D เขียนฟังก์ชั่น CountIf ใน Code ไม่ถูกต้องครับ

ควรจะ Debug เพื่อ Run Code ทีละบรรทัด จะได้ทราบว่าผิดพลาดที่บรรทัดไหน ดูวิธีการที่นี่ครับ viewtopic.php?f=3&t=17483&p=103247#p103247

ในโอกาสถัดไปจะต้องแจ้งบรรทัดที่มีปัญหามาด้วยเสมอครับ
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#16

Post by piman »

ขอบคุณครับ ตอนนี้ผมได้แก้จาก Countif เป็น Counta ครับ เนื่องจากผมไม่มีเงื่อนไขต้องเช็คครับ

ได้ทำการตรวจเช็ค Debug มาหยุดที่

Code: Select all

arr(j, 1) = Sheets("Datareport").Cells(i, "B").Value
บรรทัดนี้ครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#17

Post by snasui »

:D โปรแกรมฟ้อง Error อะไรครับ :?:
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#18

Post by piman »

Run time error '9'
Subscript out of range

ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#19

Post by snasui »

:D แก้ Dimension ของ arr ให้ตรงกับความต้องการที่จะใช้จริงเป็นด้านล่างครับ

Code: Select all

ReDim arr(0 To k, Me.lstDatareport.ColumnCount)
piman
Member
Member
Posts: 62
Joined: Wed Jul 29, 2020 2:01 pm
Excel Ver: 2016

Re: จัด Column ตอนสั่ง Print เป็นไฟล์ PDF ครับ

#20

Post by piman »

สามารถรันได้ตามต้องการแล้วครับ

สอบถามเพิ่มเติมอีกนิดครับ ถ้าอยากให้หัว Column มาแสดงด้วย ผมกำหนดให้

Code: Select all

 Me.lstDatareport.RowSource = "Datareport!A2:N" 
พอลองรันแล้วขึ้น error ขึ้นที่บรรทัดนี้เลยครับ
You do not have the required permissions to view the files attached to this post.
Post Reply