Page 1 of 1

พบ Automation Error (Error 440) เมื่อใช้งาน VBA ค่ะ

Posted: Wed Nov 15, 2017 7:15 pm
by faiiz
สวัสดีค่ะ
ดิฉันเขียนโปรแกรมเพื่อ คัดลอก row ค่ะ แล้วพบว่าถ้าดิฉันเปิดเข้าไปในโปรแกรมแล้วสั่ง Run VBA จะสามารถคัดลอก row ได้ไม่มีปัญหา
แต่ถ้าดิฉัน เข้าไปพิมพ์ข้อความก่อน แล้วสั่ง Run VBA Excelจะฟ้อง Error ทันทีค่ะ
ซึ่งสามารถพิมพ์ข้อความก่อน Run VBA ได้ในคอมพิวเตอร์บางเครื่อง บางเครื่องไม่สามารถทำงานได้ค่ะ
โดยจะแสดง Error ออกมาดังรูปค่ะ ( ใช้ Excel 2013 ทุกๆเครื่องค่ะ)
Capture.PNG
Capture.PNG (19.38 KiB) Viewed 93 times
เมื่อกด Help excel พามายัง link นี้ค่ะ https://msdn.microsoft.com/en-us/vba/la ... -error-440

โดยผลที่ตามมาคือ Excel ไม่สามารถเลือก Cell ต่างๆได้ ซึ่งปกติแล้วถ้าเลือก cell จะมีไฮไลท์รอบๆ Cell นั้น
แต่เมื่อเกิด Error ขึ้นแล้ว กลับไม่สามารถเลือกได้ค่ะ ทำให้เมื่อ Run VBA อีกครั้งหนึ่ง จะฟ้อง Error ว่าไม่สามารถ Selection cell ได้ค่ะ

ซึ่งดิฉันพยายามหาวิธีใน Microsoft Support แล้วแต่ยังหาวิธีแก้ไขไม่ได้ค่ะ

Re: พบ Automation Error (Error 440) เมื่อใช้งาน VBA ค่ะ

Posted: Wed Nov 15, 2017 7:33 pm
by puriwutpokin
ควรแนบไฟล์ตัวอย่างและโค้ดที่ติดปัญหามาด้วยครับ​ เพื่อนๆสมาชิกจะได้เข้าถึงปัญหานั้นได้ครับ

Re: พบ Automation Error (Error 440) เมื่อใช้งาน VBA ค่ะ

Posted: Wed Nov 15, 2017 8:31 pm
by faiiz
ขอบคุณค่ะที่แนะนำ
CodeAddrow.PNG
CodeAddrow.PNG (69.52 KiB) Viewed 81 times
นี่คือ Code ที่ใช้ค่ะ
ซึ่ง Error 440 ที่ดิฉันได้แจ้งไปข้างต้น จะเกิดขึ้น แล้วหลังจากนั้นจะทำให้ Code ชุดนี้ที่แนบไปนั้นไม่สามารถใช้งานได้ค่ะ
เนื่องจาก ติดปัญหา การ Select Row ค่ะ

เมื่อ Error 440 จะเป็นลักษณะตามภาพนี้ค่ะ
CannotSelectCell.PNG
CannotSelectCell.PNG (12.36 KiB) Viewed 81 times
ถ้าสังเกตดูจะเห็นว่าไม่ได้แสดงว่าดิฉันเลือก Cell ที่มีเลข 2 อยู่ ซึ่งจริงๆแล้ว ดิฉัน เลือก Cell นั้นค่ะ
โดยปกติถ้าเราเลือก cell จะมีลักษณะดังนี้ค่ะ
activecell.PNG
activecell.PNG (1.1 KiB) Viewed 81 times
แต่เมื่อทำการปิดไฟล์และเปิดขึ้นมาใช้งานโดย Run VBA เพียงอย่างเดียวแล้ว พิมพ์ข้อความ จะสามารถทำงานได้ค่ะ
แต่หากทำการพิมพ์ข้อความก่อน แล้วจึง Run VBA จะไม่สามารถใช้งานได้ โดยจะแสดง ERROR 440 ออกมาค่ะ

Re: พบ Automation Error (Error 440) เมื่อใช้งาน VBA ค่ะ

Posted: Thu Nov 16, 2017 5:50 am
by snasui
:D การแนบ Code ให้ดูใน Link ของกฎการใช้บอร์ดข้อ 5 ด้านบนครับ

ลองแนบไฟล์ตัวอย่าง ตัดมาเฉพาะส่วนที่เป็นปัญหามาดูกันจะได้ช่วยตรวจสอบได้ จาก Code ที่เขียนมานั้นเป็นแค่การคัดลอก แทรก และ Clear ที่เป็นการใช้งานแบบปกติทั่วไป

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

ในเบื้องต้น ลองตรวจสอบข้อมูลว่ามีลักษณะตามด้านบนหรือไม่ครับ