Page 1 of 1

ขอคำแนะนำการเขียน VB สำหรับการระบายสีตัวเลข

Posted: Sun May 10, 2015 12:23 am
by nopadol999
(กรุณาดูไฟล์แนบ)
ในคอลัมน์ B2:E2 เป็นกลุ่มตัวเลข 1 กลุ่ม (กลุ่มละ 4 ตัว มีตัวเลขไม่ซ้ำกัน) และบรรทัดถัดมาคือกลุ่มที่ 2,3,4....ตามลำดับ ซึ่งอาจจะมีมากกว่า 200 กลุ่ม

สมมุติให้บรรทัดที่ 2 ของคอลัมน์ H:Q เป็นบริเวณสำหรับคีย์ข้อมูล ซึ่งก็คือตัวเลขที่มาจากในกลุ่มดังที่กล่าวไปแล้ว แต่มีข้อแม้ว่า ในแต่ละบรรทัด จะมีตัวเลขจากแต่ละกลุ่มได้แค่ 1 ตัวเท่านั้น

ปัญหาก็คือ เราจะทราบได้อย่างไร ถ้าในคอลัมน์ H:Q คีย์ตัวเลขที่อยู่ในกลุ่มเดียวกัน ผมอยากจะเขียน VB โดยให้มีการระบายสีตัวเลขที่ผิดเงื่อนไข ดังตัวอย่าง แต่ไม่มีความรู้เพียงพอ จึงขอความกรุณาท่านผู้รู้ช่วยแนะนำด้วยครับว่าพอมีวิธี หรือคำสั่งใดบ้าง ที่พอจะนำมาใช้ สำหรับกรณีนี้

ขอบคุณครับ
font conditional formatting.xlsx

Re: ขอคำแนะนำการเขียน VB สำหรับการระบายสีตัวเลข

Posted: Sun May 10, 2015 8:50 am
by snasui
:D สำหรับการใช้งาน VBA จำเป็นต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ

ส่วนแนวทางการใช้สูตรและ Conditional Formatting สามารถทำได้ตามด้านล่าง
  1. ที่เซลล์ S2 คีย์สูตร
    =IFERROR(INDEX($A$2:$A$113,MIN(IF(MMULT(--($B$2:$E$2<>""),--TRANSPOSE(H2=$B$2:$E$113)),TRANSPOSE(ROW($A$2:$A$113)-ROW($A$2)+1)))),"")
    Ctrl+Shift+Enter > Copy T2 ไปด้านขวาจนถึง AB2 แล้ว Copy ลงด้านล่างตามต้องการ
  2. คลุม H2:Q5 แล้วเข้าเมนู Home > Conditional Formatting > New Rule...
  3. ตรง Select a Rule Type: ให้เลือก Use a formula to determine which cells to format
  4. ตรงช่อง Format values where this formula is true: คีย์สูตรตามด้านล่าง
    =COUNTIF($S2:$AB2,S2)>1
  5. คลิกปุ่ม Format เพื่อกำหนด Format ตามต้องการ ซึ่งการ Format นี้จะเป็นการให้ Format เมื่อมีการผิดเงื่อนไข > OK > OK

!
Note: Ctrl+Shift+Enter หมายถึง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง

Re: ขอคำแนะนำการเขียน VB สำหรับการระบายสีตัวเลข

Posted: Sun May 10, 2015 6:30 pm
by nopadol999
ขอบคุณมาก ๆ ครับ ลองไปใช้งานดูแล้ว ปรากฏว่าไม่จำเป็นต้องเป็น VB ก็ใช้งานได้เป็นอย่างดีครับ ขอบคุณจริง ๆ ครับ