Category Archives: VBA Tips

การค้นหาข้อมูลหลายชีตด้วย VBA

🔍 เมื่อข้อมูลแยกกันอยู่หลายชีตการเข้าถึงข้อมูลจะยุ่งยากขึ้นมาทันที แม้เราจะมีฟังก์ชั่นการค้นหาของ Excel ที่มีความสามารถสูงส่งก็ยังไม่มีความเป็นอัตโนมัติพอที่่จะให้เราทำงานได้โดยสะดวกรวดเร็ว วิธีการที่จะให้เกิดความสะดวกในการค้นหาข้อมูลตามที่เราต้องการ

Join String

😉 แม้ Excel จะมีฟังก์ชั่นสำหรับการใช้งานมากมาย ซึ่ง ณ ปัจจุบันรวม ๆ แล้วเกิน 4 ร้อยฟังก์ชั่น แต่ก็ยังไม่เพียงพอแก่การใช้ในบางงาน หรือบางฟังก์ชั่นเริ่มนำมาใช้ใน Version ใหม่ ๆ ทำให้ผู้ใช้งาน Excel Version เก่า ๆ ต้องเขียนฟังก์ชั่นขึ้นมาใช้เองเพื่อให้สะดวกต่อการทำงาน 😅

การปรับปรุงข้อมูลพร้อมกันหลายรายการด้วย VBA

🤔 กรณีของการรวบรวมข้อมูลเช่นการทำงบประมาณจำปี ในระหว่างการรวบรวมข้อมูลมักจะมีการเปลี่ยนแปลงข้อมูลได้เสมอ การเปลี่ยนแปลงเพียงไม่กี่รายการย่อมไม่ส่งผลกระทบมากนัก แต่หากมีการเปลี่ยนแปลงหลาย ๆ รายการพร้อมกันทีเดียวจะเกิดความยุ่งยากลำบากแก่ผู้รวบรวมขึ้นทันที 😖

การกระจายข้อมูลออกเป็นหลายชีตด้วย VBA

📘 เราสามารถนำข้อมูลในชีตเดียวกันไปแสดงหลาย ๆ ชีตได้หลายวิธี เช่น ด้วยสูตร ด้วย PivotTable แต่ทั้งสองวิธีจะมีปัญหากับการเพิ่มลดข้อมูล เพราะไม่สามารถที่จะเพิ่มลดชีตได้อย่างอัตโนมัติ หากต้องการให้มีการเพิ่มลดชีตได้อย่างอัตโนมัติจำเป็นต้องพึ่งพา VBA 😄

การแปลง Report ไปเป็น Database

📈 ความยุ่งยากสำคัญอีกประการหนึ่งของผู้ทำรายงาน คือการทำรายงานจากรายงานที่ได้รับมาจากผู้อื่น เนื่องจากข้อมูลที่ได้รับมาส่วนใหญ่จะเป็นรายงานเช่นกัน หากรูปแบบไม่ตรงกันทุกประการจะเกิดความยุ่งยาก เพื่อให้ทำรายงานได้โดยง่าย ควรแปลงรายงานที่ได้รับมาให้เป็น Database เสียก่อน 🖥

นำข้อมูลจากหลายชีตมาเรียงใหม่เฉพาะค่าที่ไม่ซ้ำ

💥 Excel มีเครื่องมือสำหรับการนำเฉพาะค่าที่ไม่ซ้ำมาแสดงคือ Data > Remove Duplicates แต่จะทำเช่นนี้ได้ข้อมูลจะต้องอยู่ในชีตเดียวกันเท่านั้น หากข้อมูลอยู่ในหลาย ๆ ชีต แต่ละชีตมีหลายตำแหน่ง จะไม่สามารถใช้เครื่องมือตัวนี้จัดการได้ในทันที จำเป็นต้องใช้ VBA เข้ามาจัดการ 🙂

การค้นหาข้อมูลด้วย VBA

🔎 การค้นหาใน Excel สามารถกดแป้น Ctrl+F เพื่อเปิดกล่องโต้ตอบที่ใช้สำหรับการค้นหา กรอกข้อมูลที่ต้องการแล้วคลิกปุ่ม Find Next หรือ Find All แล้วแต่ว่าต้องการค้นหาไปทีละค่าหรือค้นหาทั้งหมด การค้นหาดังกล่าวเป็นการวิ่งไปยังเซลล์ที่พบข้อมูล

คัดลอกข้อมูลที่ระบายสีไปไว้ในไฟล์ใหม่

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

รวมข้อมูลที่กระจัดกระจายมาเป็น Database

🖥 การ Import ข้อมูลจากระบบอื่นเข้ามาใน Excel หรือแม้กระทั่งการดาวน์โหลดข้อมูลออกมาจากระบบหลักของกิจการ ในบางครั้งกลับพบว่าข้อมูลที่ได้มานั้นมีความไม่เป็นระเบียบ เช่นมีบรรทัดทัดว่าง มีคอลัมน์ว่างเกินความต้องการ หรือข้อมูลกระจายเป็นกลุ่ม ๆ 😫

การบันทึกข้อมูลลง Database ด้วย VBA

⌨ ผู้ใช้งาน Excel ส่วนใหญ่มักจะมีปัญหาการนำข้อมูลไปจัดเก็บไว้เป็นฐานข้อมูลหรือ Database เพื่อให้เกิดความสะดวกในการนำข้อมูลมาใช้งานในภายหลัง ซึ่งการจัดเก็บข้อมูลลง Database นั้นไม่สามารถทำได้ด้วยสูตร จำเป็นต้องพึ่งพา VBA เข้ามาจัดการ 😟

แปลงข้อมูลให้เป็น Database ด้วย VBA

📝 บ่อยครั้งทีเดียวที่เราได้รับข้อมูลมาแล้วไม่สามารถนำไปใช้งานต่อได้ ยกตัวอย่างเช่น ข้อมูลที่คั่นด้วยเครื่องหมายคอมม่าและวางอยู่ในคอลัมน์เดียว หากข้อมูลเหล่านั้นคั่นด้วยเครื่องหมายคอมม่าด้วยจำนวนที่ไม่แน่นอนจะยิ่งยุ่งยากลำบากในการจัดการ 😵

Code สั่ง Print ผ่านวงแลน

ปัญหาใช้ Macro สั่ง Print ผ่านวงแลน เมื่อนำไฟล์งานไป print เครื่องอื่น กลับ print ไม่ได้ เนื่องจาก Printer ที่กำหนดค่าไว้ Macro เป็นอีก Port แต่เครื่องที่นำไฟล์ไปใช้เป็นอีก Port ซึ่ง Port ของ Printer ไม่ตรงกัน ตัวอย่างเครื่อง Print ที่กำหนดไว้ใน Macro เครื่องแรก >>\172.30.53.61\OKI MICROLINE 791