VBA--WorksheetFunction และ Application ครับ
Posted: Fri Apr 10, 2015 6:36 pm
อาจารย์ครับ เห็นบางคนที่ใช้ฟังก์ชันใน VBA เช่น Index ใช้คำนำหน้าไม่เหมือนกัน (เรียกไม่ถูกครับ ไม่รู้เรียกว่าอะไร
) เช่น
(สมมติว่า i เป็นตัวเลขที่ทราบค่าแล้วครับ)
ผมสงสัยว่ามันต่างกันยังไงครับ? ถ้าใช้ WorksheetFunction เวลาพิมพ์จุด "." ก็จะมีคำสั่งมาให้เลือก (ใช่เรียกว่า Intellisense หรือเปล่าครับ) ในรายการจะมีสูตรที่ใช้บ่อยๆ ใน worksheet ขึ้นมาให้เลือกด้วย และเวลาจะพิมพ์ i ก็จะมี message ขึ้นมาบอกว่า Arg2 as Double แต่ผมประกาศ i เป็น integer คำสั่งยังรันได้
ส่วนเวลาใช้ Application เวลาพิมพ์ "." จะไม่มีสูตรพวกนี้ให้เลือก แต่ก็ยังใช้ได้ เลยงงว่า หากเวลาต้องการเรียกสูตรที่ใช้บ่อยๆ ใน worksheet มาใช้ใน vba เราควรใช้แบบไหนครับ
WorksheetFunction.Match(...,i) หรือบางท่านก็ใช้Application.Match(...,i)(สมมติว่า i เป็นตัวเลขที่ทราบค่าแล้วครับ)
ผมสงสัยว่ามันต่างกันยังไงครับ? ถ้าใช้ WorksheetFunction เวลาพิมพ์จุด "." ก็จะมีคำสั่งมาให้เลือก (ใช่เรียกว่า Intellisense หรือเปล่าครับ) ในรายการจะมีสูตรที่ใช้บ่อยๆ ใน worksheet ขึ้นมาให้เลือกด้วย และเวลาจะพิมพ์ i ก็จะมี message ขึ้นมาบอกว่า Arg2 as Double แต่ผมประกาศ i เป็น integer คำสั่งยังรันได้
ส่วนเวลาใช้ Application เวลาพิมพ์ "." จะไม่มีสูตรพวกนี้ให้เลือก แต่ก็ยังใช้ได้ เลยงงว่า หากเวลาต้องการเรียกสูตรที่ใช้บ่อยๆ ใน worksheet มาใช้ใน vba เราควรใช้แบบไหนครับ