snasui wrote:
ช่วยเล่าว่าต้องการจะทำอะไรและปัญหาคืออะไรมาอีกรอบ จะได้เข้าใจในสิ่งที่ต้องการจะทำ จากที่เขียนมายังไม่กระจ่างครับ
การดัก Error จะดักได้ก็ต่อเมื่อเกิด Error หากไม่ Error แต่่เรามีทางเลือกในการทำงาน สามารถใช้ Select Case หรือ If เข้ามาช่วยได้
คำว่าไปเปิด เป็นการกระทำลักษณะใดครับ ในกรณีการเปิดไฟล์ ให้ตรวจสอบแค่เพียงชื่อไฟล์ก็เพียงพอ ไม่จำเป็นต้องตรวจสอบไปถึงตำแหน่งเซลล์แต่อย่างใดครับ

มีเอกสารรายงาน 1 ฉบับ ขอเรียกเป็น Workbook ชื่อ Book_report
และมีข้อมูลที่ต้องนำมาใช้ใน Book_report ซึ่งขอยกข้อมูลมา 3 ข้อมูล งานจริงมีมากว่านั้น ในแต่ละข้อมูลอยู่คนละไฟล์
ข้อมูลที่ 1 เป็น Book_1
ข้อมูลที่ 2 เป็น Book_2
ข้อมูลที่ 2 เป็น Book_3
ทั้ง 3 ข้อมูล อยู่คนละ Workbooks
จึงเขียน code ให้ Book_report คัดลอกข้อมูลใน Book_1,2,3 มาใช้งานในแต่ละเดือน
ซึ่งในแต่ละเดือนนั้น บางเดือนอาจไม่มีข้อมูลที่ 1 แต่มี ข้อมูล 2,3 หรือ บางเดือนอาจมีข้อมูลที่ 2 ไม่มีข้อมูล 1,3
มีความไม่แน่นอน หากในเดือนที่มีข้อมูลครบทั้ง 3 ข้อมูล (ครบทุกWorkbooks) การคัดลอกก็จะไม่มีปัญหา
แต่หากไม่ครบ เกิดปัญหา Error เพราะไฟล์ Workbooks นั้นๆ ไม่มี ผมจึงใช้ On Error GoTo ErrorHandler
เข้าไปจับ ให้สามารถข้าม Error นั้นๆ ได้ แต่เมื่อทำแล้ว ผมใส่ code On Error GoTo ErrorHandler ใช้ได้แค่
ดัก Error ได้ครั้งเดียว ใส่เพิ่ม code เข้าไปอีกแล้วพบปัญหาว่า ไม่สามารถใช้ได้ จะขึ้นข้อความ
Duplicate declaration in current scope น่าจะเกิดจากมีการใช้คำสั่ง On Error GoTo ErrorHandler ซ้ำกัน
จึงต้องการให้ปรับ code ให้ หรือถ้ามีวิธีอื่นที่ดีกว่าขอ code ตัวอย่าง โดยไม่ใช้ On Error GoTo ก็ได้ครับ