วิธีแก้ไขข้อผิดพลาด 'Subscript Out of Range' ใน Visual Basic สำหรับแอปพลิเคชัน



ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

Visual Basic for Applications (VBA) คือการใช้ภาษาโปรแกรม Visual Basic ที่พัฒนาโดย Microsoft VBA สามารถใช้สำหรับการเปิดใช้งาน UDF การทำงานอัตโนมัติและการเข้าถึง WinAPI ผ่าน DLL อย่างไรก็ตามเมื่อไม่นานมานี้มีรายงานจำนวนมากเข้ามาโดยที่ผู้ใช้ไม่สามารถดำเนินการคำสั่งบางคำสั่งได้และ ' ตัวสมัครอยู่นอกช่วงข้อผิดพลาด 9 ” ปรากฏขึ้นขณะพยายามทำ



ข้อผิดพลาดตัวสมัครอยู่นอกช่วง



อะไรทำให้เกิดข้อผิดพลาด“ Subscript Out of Range” ใน VBA

หลังจากได้รับรายงานจำนวนมากจากผู้ใช้หลายคนเราจึงตัดสินใจที่จะตรวจสอบปัญหาและคิดหาวิธีแก้ไขปัญหาอย่างสมบูรณ์ นอกจากนี้เรายังตรวจสอบสาเหตุที่ทำให้เกิดและระบุไว้ดังต่อไปนี้



  • องค์ประกอบที่ไม่มีอยู่: ในบางกรณีอาจเป็นไปได้ว่าคุณอาจอ้างถึงองค์ประกอบในคำสั่งที่ไม่มีอยู่ เป็นไปได้ว่าตัวห้อยมีขนาดใหญ่หรือเล็กกว่าช่วงของตัวห้อยที่เป็นไปได้หรือมิติข้อมูลอาจไม่ได้ถูกกำหนดให้กับอาร์เรย์ ณ จุดนี้ในแอปพลิเคชัน
  • องค์ประกอบที่ไม่ได้กำหนด: เป็นไปได้ว่าคุณไม่ได้ระบุจำนวนองค์ประกอบในโค้ดของคุณสิ่งสำคัญคือต้องกำหนดจำนวนองค์ประกอบในอาร์เรย์โดยใช้คำสั่ง“ Dim” หรือ“ ReDim”
  • สมาชิกคอลเลกชันไม่ถูกต้อง: ในบางกรณีผู้ใช้อาจอ้างถึงสมาชิกคอลเลกชันที่ไม่มีอยู่จริง หากมีการอ้างอิงที่ไม่ถูกต้องต่อสมาชิกคอลเลกชันข้อผิดพลาดนี้อาจเกิดขึ้น
  • สคริปต์ชวเลข: เป็นไปได้ว่าคุณได้ใช้ประโยชน์จากตัวห้อยในรูปแบบชวเลขและระบุโดยปริยายองค์ประกอบที่ไม่ถูกต้อง สิ่งสำคัญคือต้องใช้ชื่อคีย์ที่ถูกต้อง

เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับลักษณะของปัญหาแล้วเราจะดำเนินการแก้ไขต่อไป อย่าลืมนำสิ่งเหล่านี้ไปใช้ตามลำดับเฉพาะที่นำเสนอเพื่อหลีกเลี่ยงความขัดแย้ง

โซลูชันที่ 1: การตรวจสอบอาร์เรย์

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

อาร์เรย์ใน VBA Excel



โซลูชันที่ 2: การระบุจำนวนองค์ประกอบ

ในบางกรณีอาจเป็นไปได้ว่าคุณอาจไม่ได้กำหนดจำนวนองค์ประกอบในโค้ดของคุณเนื่องจากข้อผิดพลาดกำลังเกิดขึ้น ขอแนะนำให้คุณระบุจำนวนองค์ประกอบในอาร์เรย์โดยใช้ ไม่มี หรือ ReDim ฟังก์ชั่น.

ใช้ Dim และ ReDim เพื่อระบุจำนวนองค์ประกอบ

โซลูชันที่ 3: การเปลี่ยนโครงสร้าง

ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อผู้ใช้ระบุสมาชิกคอลเลกชันที่ไม่ถูกต้องหรือไม่มีอยู่จริง ดังนั้นแทนที่จะระบุองค์ประกอบดัชนีขอแนะนำให้คุณเข้าใกล้ด้วย ' สำหรับแต่ละคน ... ถัดไป 'สร้าง.

ใช้โครงสร้าง“ สำหรับแต่ละ…ถัดไป”

โซลูชันที่ 4: การตรวจสอบชื่อคีย์และดัชนี

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

การใช้ชื่อคีย์ที่ถูกต้อง

อ่าน 2 นาที