Page 1 of 1

การอ้างอิงข้อมูลใช้ไม่ได้ใน Excel เวอร์ชั่นใหม่ๆ

Posted: Mon May 10, 2021 10:31 pm
by mynumnum
เรียนถามผู้รู้
ผมพัฒนางาน vba บน Excel 2010
แจกให้เพื่อนนำไปใช้งาน เพื่อนนำไปใช้กับ เวอร์ชั่นที่สูงกว่าโปรแกรมแจ้ง Error
"Run-time error 9
Subscript out of range"
ผมก๊อปจากเพื่อนมาเปิดในเครื่องผมกลับทำงานได้ตามปกติ
ตัวอย่างคำสั่ง เช่น
i = Sheets("5.ใบจัดซื้อจัดจ้าง").Range("AG5").Value

คำถาม
1. เกิดข้อผิดพลาดตรงไหน
2. จะสามารถแก้ไขปัญหานี้ได้อย่างไร
(ถ้าจำเป็นต้องแนบไฟล์ แล้วผมค่อยแนบอีกทีนะครับ)
ขอบคุณครับ

Re: การอ้างอิงข้อมูลใช้ไม่ได้ใน Excel เวอร์ชั่นใหม่ๆ

Posted: Tue May 11, 2021 6:10 am
by snasui
:D การฟ้องเช่นนั้นแสดงว่า Excel ไม่รู้จักชีตที่ชื่อ "5.ใบจัดซื้อจัดจ้าง" ครับ

Error นั้นมีความหมาย 2 อย่างที่สำคัญคือ ไม่มี Object ที่กำหนดให้กับตัวแปรหรือไม่มีตัวแปรค่านั้น ๆ ให้นำมาใช้ได้

เช่นกำหนดตัวแปร wb เป็น Dim wb As Workbook แล้วกำหนดค่าให้ตัวแปรเป็น Set wb = Workbooks("MyWowkbook.xlsx")

หากไม่มีไฟล์ที่ชื่อ "MyWowkbook.xlsx" จะ Error

อีกตัวอย่าง ตัวแปร Array ที่กำหนดไว้คือ Dim a(1 to 3) As Variant แต่ตอนกำหนดค่าให้ตัวแปรใช้เป็น a(4) = "xyz" เช่นนี้ก็ Error เพราะ เกินขอบเขตของตัวแปร a เช่นนี้เป็นต้นครับ

Re: การอ้างอิงข้อมูลใช้ไม่ได้ใน Excel เวอร์ชั่นใหม่ๆ

Posted: Thu May 13, 2021 11:13 pm
by mynumnum
เครื่องคงไม่รู้จักชื่อ sheet ที่เป็นภาษาไทย เพราะค่า Region ของเครื่องเป็น English หรือเปล่าครับ
แต่เปลี่ยนชื่อ sheet เป็นภาษาอังกฤษซะเลยง่ายกว่า
ขอบคุณครับ

Re: การอ้างอิงข้อมูลใช้ไม่ได้ใน Excel เวอร์ชั่นใหม่ๆ

Posted: Fri May 14, 2021 6:51 am
by snasui
mynumnum wrote: Thu May 13, 2021 11:13 pm เครื่องคงไม่รู้จักชื่อ sheet ที่เป็นภาษาไทย เพราะค่า Region ของเครื่องเป็น English หรือเปล่าครับ
:D ยังไม่สามารถตอบได้จนกว่าจะได้ทดสอบไฟล์นั้นครับ

ปกติการตั้งชื่อไฟล์ ชื่อชีต ชื่อ Procedure ควรเลือกใช้ภาษาอังกฤษ หากนำมาเขียน Code เข้าไปควบคุมจะเกิดความคล่องตัวไม่ต้องสลับภาษาไปมาครับ