สารบัญ
ในบทความนี้ เราจะแสดงสาเหตุของข้อผิดพลาด “ Subscript out of Range ” ใน Excel VBA และวิธีแก้ปัญหาดังกล่าว
ดาวน์โหลดเทมเพลตแบบฝึกหัด
คุณสามารถดาวน์โหลดเทมเพลตแบบฝึกหัด Excel ได้ฟรีจากที่นี่
Subscript Out of Range Error ใน VBA.xlsm
Subscript Out of Range Error ใน VBA คืออะไร ข้อผิดพลาด
VBA Subscript อยู่นอกช่วง เกิดขึ้นเมื่อเราพยายามเข้าถึงสมาชิกที่ไม่มีอยู่หรือคอลเลกชันอาร์เรย์ที่ไม่มีอยู่ใน Excel นี่เป็นข้อผิดพลาดประเภท “ ข้อผิดพลาดรันไทม์ 9 ” ในการเข้ารหัส VBA ใน Excel
ข้อผิดพลาดมักจะมีลักษณะดังนี้
5 เหตุผลพร้อมวิธีแก้ไข Subscript Out of Range Error ใน VBA
ส่วนนี้จะกล่าวถึงสาเหตุที่พบบ่อยที่สุด 5 ประการสำหรับการเกิด ตัวห้อยอยู่นอกช่วง เกิดข้อผิดพลาดและมีวิธีแก้ไขอย่างไร
1. ตัวห้อยอยู่นอกช่วงข้อผิดพลาดใน VBA สำหรับสมุดงานที่ไม่มีอยู่
เมื่อคุณพยายามเข้าถึงสมุดงาน Excel ที่ไม่ได้เปิดอยู่ คุณจะได้รับข้อผิดพลาด “ ตัวห้อยอยู่นอกช่วง ”
หากเราพยายาม เรียกใช้ โค้ดที่แสดงด้านบน เราจะได้รับข้อผิดพลาดเนื่องจากไม่มีสมุดงาน Excel ชื่อ “ การขาย ” ที่กำลังเปิดอยู่
วิธีแก้ไข
หากต้องการแก้ไขข้อผิดพลาดนี้ ก่อนอื่นให้เปิดสมุดงาน Excel ที่คุณต้องการเข้าถึง จากนั้นเรียกใช้ มาโคร
2. ตัวห้อยอยู่นอกช่วงข้อผิดพลาดใน VBA สำหรับไม่มีอยู่แผ่นงาน
เมื่อคุณพยายามเข้าถึงแผ่นงานที่ไม่มีอยู่ในสมุดงาน Excel คุณจะได้รับข้อผิดพลาด “ Subscript out of range ” ใน VBA .
หากเราพยายามเรียกใช้โค้ดที่แสดงด้านบน เราจะได้รับข้อผิดพลาดเนื่องจากไม่มี “ Sheet2 ” แผ่นงานที่มีอยู่ในสมุดงานของเรา
วิธีแก้ไข
ในการแก้ไขข้อผิดพลาดนี้ คุณต้องมีแผ่นงาน Excel ที่คุณต้องการเข้าถึงในสมุดงานที่กำลังทำงานอยู่และ จากนั้นเรียกใช้แมโคร
3. Subscript Out of Range Error ใน VBA สำหรับ Undefined Array Elements
หากคุณไม่กำหนดความยาวของไดนามิกอาร์เรย์ด้วย คำ DIM หรือ REDIM ใน Excel VBA จากนั้นคุณจะได้รับข้อผิดพลาด “ Subscript out of range ”
ในโค้ดข้างต้น เราประกาศ Array ในมิติข้อมูลตั้งแต่ 5 ถึง 10 แต่อ้างถึงตัวห้อยของดัชนี 3 ซึ่งต่ำกว่า 5
วิธีแก้ไข
ในการแก้ปัญหานี้ ให้ประกาศดัชนีระหว่างมิติ Array
ส่วนนี้ e ของรหัสทำงานได้ดีอย่างสมบูรณ์เพราะที่นี่เราอ้างถึงตัวห้อยของดัชนี 5 ซึ่งอยู่ในช่วง 5 ถึง 10
4. Subscript Out of Range Error ใน VBA for Invalid Collection/ อาร์เรย์
เมื่อตัวห้อยมีขนาดใหญ่หรือเล็กกว่าช่วงของตัวห้อยที่เป็นไปได้ ข้อผิดพลาด ตัวห้อยอยู่นอกช่วง จะเกิดขึ้น
ดูตัวอย่างข้างต้น เราประกาศตัวแปรเป็นอาร์เรย์ แต่แทนที่จะกำหนดจุดเริ่มต้นและจุดสิ้นสุด เราได้กำหนดอาร์เรย์แรกด้วยค่า 20 โดยตรง
วิธีแก้ไข
ถึง แก้ไขปัญหานี้ เราต้องกำหนดความยาวของอาร์เรย์ด้วยจุดเริ่มต้นและจุดสิ้นสุด
โค้ดนี้ไม่มีข้อผิดพลาดใดๆ เพราะตอนนี้เราได้ประกาศอาร์เรย์แล้ว โดยมีจุดเริ่มต้นเป็น 1 และจุดสิ้นสุดเป็น 5
5. Subscript Out of Range Error ใน VBA สำหรับ Shorthand Script
หากคุณใช้ชวเลขจาก ตัวห้อยและอ้างถึงองค์ประกอบที่ไม่ถูกต้อง คุณจะได้รับข้อผิดพลาด “ ตัวห้อยอยู่นอกช่วง ” ใน Excel VBA ตัวอย่างเช่น [A2] เป็นชวเลขสำหรับ ActiveSheet.Range(A2) .
Solution
เพื่อแก้ไข คุณต้องใช้ ชื่อคีย์ และ ดัชนี ที่ถูกต้องสำหรับคอลเลกชัน แทนที่จะเขียน ActiveSheet.Range(A2) คุณสามารถเขียน [ A2 ] ได้
ข้อดีของ Excel Subscript Out of Range Error ใน VBA
- ข้อผิดพลาด VBA Subscript อยู่นอกช่วง หรือ “ ข้อผิดพลาดรันไทม์ 9 ” มีประโยชน์มากในการระบุตำแหน่งของข้อผิดพลาดที่เกิดขึ้น ในรหัส VBA
- ข้อผิดพลาดนี้ช่วยให้ผู้ใช้ค้นหาประเภทของข้อผิดพลาด เพื่อให้สามารถตรวจสอบและค้นหาวิธีแก้ไขตามรหัสข้อผิดพลาด
ข้อควรจำ
- เนื่องจากข้อผิดพลาดนี้จะรวบรวมโค้ดแต่ละขั้นตอนเพื่อบอกให้เราทราบว่าส่วนใดของโค้ดที่เราต้องดำเนินการจริง ๆ ดังนั้นจึงเป็นการดีกว่าที่จะรวบรวมโค้ดแต่ละบรรทัดทีละบรรทัดโดยกดปุ่ม F8 หากคุณมีโค้ดหลายบรรทัด
บทความนี้แสดงสาเหตุและวิธีแก้ปัญหาของ Excel ตัวห้อยอยู่นอกช่วง ข้อผิดพลาดใน VBA ฉันหวังว่าบทความนี้จะเป็นประโยชน์ต่อคุณอย่างมาก อย่าลังเลที่จะถามคำถามเกี่ยวกับหัวข้อนี้