Page 1 of 1

คำถาม VBA Event สำหรับดักจับการ Filter ใน Sheet

Posted: Fri Jan 23, 2015 11:53 am
by eieisung
ผมอยากทราบ Event ที่ใช้ดักจับการเลือก Filter ภายใน sheet แล้วจึงส่งผลให้คำสั่งที่เตรียมใว้ทำงานครับ

ตัวอย่างลักษณะการทำงานคือ
เมื่อ User ทำการใช้งาน Filter (ตารางข้อมูลที่ถูก Filter มีการเปลี่ยนแปลง) ให้มี msgbox แสดงจำนวนคงเหลือที่แสดงอยู่จริง
ตามคำสั่ง Subtotal ดังนี้ครับ
**ตารางที่พูดถึงนี้เป็นตารางที่เกิดจากการเก็บข้อมูลเป็นรูปแบบตารางเฉยๆ ไม่ใช่การสร้างตารางโดยการ Insert Table ครับ

Code: Select all

MsgBox Application.WorksheetFunction.Subtotal(103, Range("A:A"))

*ลักษณะเดียวกับการใส่สูตร =SUBTOTAL(103,A:A) ใว้ใน cell แล้วตั้ง AutoCalulate
เมื่อ user ใช้งานfiler แล้วสูตรจะนับจำนวนใหม่ให้อัตโนมัติครับ

Re: คำถาม VBA Event สำหรับดักจับการ Filter ใน Sheet

Posted: Fri Jan 23, 2015 5:49 pm
by snasui
:D สำหรับการทำงานลักษณะนั้นให้ใช้ Event Worksheet_Calculate เข้ามาช่วยแทน โดยหาเซลล์ว่างแล้วคีย์ Volatile Function เช่น Now, Today เป็นต้น เมื่อมีการ Filter จะทำให้ Function พวกนี้เกิดการคำนวณและเราสามารถใช้ Event ของการคำนวณเข้าไปช่วยให้ทำงานเมื่อเกิดการ Filter ครับ

Re: คำถาม VBA Event สำหรับดักจับการ Filter ใน Sheet

Posted: Mon Jan 26, 2015 9:34 am
by eieisung
ขอบคุณครับ แต่ยังไม่ได้ผลครับ
**ผมมีความจำเป็นต้องปิดการคำนวนอัตโนมัติครับ (ขออภัยที่บอกในโพสแรกไม่ครบถ้วนครับ)

ผมเข้าใจว่า เมื่อปิดแล้ว ถึงมีการใช้ Filter สูตรใดๆก็จะไม่ทำงาน
ผมได้ลองทั้งสูตร Now() และ Today() บวกด้วย Worksheet_Calculate แล้ว

เมื่อใช้งาน Filter ทั้ง Now() และ Today() ไม่มีการเปลี่ยนแปลง
Worksheet_Calculate จึงยังไม่ทำงานครับ :( :(
ตอนนี้ใช้เป็น Worksheet_SelectionChange อยู่ครับ
ต้องรอให้ User คลิกเลือก Cell อื่นก่อนถึงจะทำงาน
และมันก็จะทำงานทุกๆครั้งที่ User คลิกเลือก Cell ครับ

Re: คำถาม VBA Event สำหรับดักจับการ Filter ใน Sheet

Posted: Mon Jan 26, 2015 11:54 am
by snasui
:lol: อันนั้นเพราะเป็นการสร้างข้อจำกัดเข้าไปเอง ทางเลือกที่จะใช้งานได้ก็ต้องน้อยลงเป็นปกติ

Excel ไม่มี Event สำหรับการ Filter หากจะทำก็ต้องเปิดให้เกิดการคำนวณอัตโนมัติ การเลี่ยงไปใช้ Event อื่นก็ต้องยอมรับผลกระทบของการเลือกเช่นนั้นครับ

Re: คำถาม VBA Event สำหรับดักจับการ Filter ใน Sheet

Posted: Mon Jan 26, 2015 1:26 pm
by eieisung
:o :o :o :o :o :cry:
ขอบคุณครับ