สวัสดีอาจารย์และเพื่อนๆ ครับ
ผมพบปัญหาว่า ไม่สามารถลบ Procedure
Worksheet_Change ที่อยู่ภายใน
Sheet2 (2S) ได้ ก่อนจะเกิด error ก็เขียนคำสั่งคล้ายใน Sheet1 (1PC) เพื่อให้เวลาคีย์รหัสสินค้าในคอลัมน์ D ก็จะให้เรียกรายละเอียดของสินค้าตัวนั้น (ซึ่งอยู่ในชีท Pro) มาแสดง คำสั่งใน Sheet 1PC ไม่มีปัญหาครับ แต่พอมาเขียนในชีท 2S กลับฟ้องว่าเจอข้อผิดพลาดและโปรแกรมปิดตัวเอง ข้อความที่ฟ้องเป็นดังรูปด้านล่างครับ

- Crash Error.png (13.48 KiB) Viewed 23 times
ตอนแรกคิดว่าเป็นเพราะโปรแกรมแฮงค์ เลยถอนการติดตั้งและลงใหม่ (Office 2010) แต่หลังจากติดตั้งใหม่ก็ยังเป็นเหมือนเดิมครับ และลองเอาไปเปิดกับเครื่องอื่นก็เป็นเหมือนกันคือ ฟ้องข้อผิดพลาดและปิดโดยอัตโนมัติ
คำเตือน: ลองเอาไฟล์ไปเปิดกับหลายเครื่อง ถึงแม้เปิดขึ้นมาดูเฉยๆ โดยไม่ทำอะไร ตอนจะปิดโปรแกรมก็จะฟ้องว่า "...encountered a problem and needs to close..." เหมือนกันไม่ว่ากรณีใด ฉะนั้น ผมไม่อยากทำให้อาจารย์และเพื่อนๆ เดือนร้อนเพราะโหลดไปเปิดและอาจจะทำให้โปรแกรมเสีย (หรือเปล่า อันนี้ผมไม่แน่ใจครับ แต่ว่าเครื่องที่ผมใช้งานยังใช้โปรแกรมได้อยู่ เพียงแต่มีปัญหาแค่ไฟล์นี้เท่านั้น)
ผมเลยอยากจะสอบถามแค่ว่า มีวิธีซ่อมแซมไหมครับ เพราะไม่อยากทำใหม่
อ่อ ลักษณะการทำงานของชีท 2S คือ
พอชีท Activate ก็จะมีตัวเลือก (Userform1) ให้เลือกก่อนว่าจะทำเอกสารอะไร (กันผู้ใช้งานลืม)

- 2s01.png (46.08 KiB) Viewed 23 times
หลังจากถูกบังคับให้เลือกแล้ว ก็จะมาเลือกรายละเอียดลูกค้าและใส่รหัสสินค้าต่อไป (แต่หากมีการใส่รหัสลูกค้าไว้ก่อนแล้ว เวลาเปิดชีทนี้กล่องตัวเลือกจะไม่ขึ้นมาให้เลือกอีกครับ)
ยอมรับว่า Userform1 นี้ ผมเขียนคำสั่งทีหลัง หลังจากเขียน Worksheet_Change ในชีท 2S เสร็จแล้ว ตอนแรกใช้งานได้เหมือนในชีท 1PC แต่พอมี Userform1 มาแล้ว error จึงเกิดขึ้นครับ
ผมต้องแก้อย่างไรดี
