Page 1 of 1

Run VBA แล้ว Filler ไม่ทำงาน

Posted: Sat Feb 25, 2012 11:03 pm
by djung
ผมต้องการได้ข้อมูลโดยให้ VBA Filter ข้อมูลใน Sheet DATA MASTER โดยระบุเงื่อนไขใน MENU SHEET ว่าจะเอา Shift ใหน แล้ว copy ข้อมูลที่ต้องการไปวางไว้ใน Sheet DATA SELECT ตอน Run ครั้งแรกจะได้ข้อมูลที่ต้องการ แต่พอ Run ครั้งที่สองไป Filter จะไม่ทำงาน ไม่รู้ว่าต้องเขียนคำสั่งเงื่อนไขใหนให้เช็คว่า Filter ใน Sheet DATA MASTER มีแล้วหรือยังถ้ายังให้ใส่คำสั่ง Filter เข้าไป แต่ถ้ามีแล้วไม่ต้องใส่คำสั่งอีกนะครับ

Re: Run VBA แล้ว Filler ไม่ทำงาน

Posted: Sat Feb 25, 2012 11:17 pm
by snasui
:D จากเงื่อนไขที่แจ้งมาลองบันทึก Macro ด้วยความสามารถของ Advanced Filter ในการจัดการครับ โดยมีลำดับดังนี้
  1. ทำการกรองรายการที่ต้องการจะ Filter ออกมาก่อน โดยใช้ Advanced Filter แบบ Unique List
  2. นำค่าจากข้อ 1 ไปเป็น Criteria ในการ Filter ข้อมูลด้วย Advanced Filter อาจจะทำให้เลือกได้ด้วย Validation
  3. เราสามารถใช้สูตร เช่น Match, Countif ตรวจสอบว่าข้อมูลใดได้ Filter ไปแล้วหรือไม่ หาก Filter ไปแล้วก็กำหนดให้ Code ไม่ทำงานพร้อมแจ้งผู้ใช้ว่ามีข้อมูลอยู่แล้ว
ทำแล้วติดตรงไหนสามารถถามมาได้เรื่อย ๆ ครับ

Re: Run VBA แล้ว Filler ไม่ทำงาน

Posted: Sat Feb 25, 2012 11:54 pm
by djung
ได้แล้วครับขอบคุณมากๆเลยครับ แต่สงสัยนิดหนึ่งตรง Unique List ว่าใช้ทำอะไรเหรอครับ

Re: Run VBA แล้ว Filler ไม่ทำงาน

Posted: Sat Feb 25, 2012 11:57 pm
by snasui
:D เพื่อจะ Filter เฉพาะค่าที่ไม่ซ้ำออกมาใช้งานครับ

Re: Run VBA แล้ว Filler ไม่ทำงาน

Posted: Sun Feb 26, 2012 6:11 am
by bank9597
:D การทำ Unique List สามารถทำได้โดยการบันทึกมาโครได้เช่นกันครับ นำโค๊ดมาปรับเองนิดหน่อยกใช้งานได้แล้วครับ มีความเร็วสูงมาก เช่นเดียวกับการทำ Advance Filter ครับ ซึ่งสิ่งเหล่านี้เป็นความสามารถที่สุดเก่งของเอ็กเซลล์อยู่แล้ว หากสังเกตให้ดีก็จะเห็นว่ามี Criteria และ Extract อยู่ใน Range Name ซึ่งผมไม่แน่ใจว่าส่วนนี้หรือไม่ที่ทำให้การทำงานถึงได้เร็ว รบกวนอาจารย์ตอบด้วยน่ะครับ :D

Re: Run VBA แล้ว Filler ไม่ทำงาน

Posted: Sun Feb 26, 2012 7:46 am
by snasui
:D ชื่อใน Range Name ที่โปรแกรมสร้างขึ้นมาจากการที่เรากำหนดเพื่อจะกระทำการใด ๆ เช่นกำหนด Print Area ทำ Advanced Filter เป็นต้น ไม่ได้ทำให้ความเร็วเพิ่มขึ้นครับ เป็นการอ้างอิงไปใช้ในตัวโปรแกรมเอง สังเกตหากว่าเราบันทึก Macro ตรง Criteria จะมีบอกว่าเป็นเซลล์ใด ซึ่งช่วงเซลล์ใน Code จะตรงกับชื่อที่โปรแกรมสร้างขึ้นมาครับ และช่วงข้อมูลใน Range Name ที่ชื่อ Criteria ก็จะเปลี่ยนไปตามที่เราเลือก Criteria เพื่อจะ Advanced Filter ใหม่เสมอครับ

Re: Run VBA แล้ว Filler ไม่ทำงาน

Posted: Sun Feb 26, 2012 7:53 am
by bank9597
:tt: ขอบคุณอาจารย์ที่ช่วยไขข้อข้องใจครับ :mrgreen: