فهرست مطالب
در این مقاله، دلایل خطای Subscript out of Range " در Excel VBA و نحوه حل آنها را به شما نشان خواهیم داد.
دانلود الگوی تمرین
می توانید الگوی تمرین رایگان اکسل را از اینجا دانلود کنید.
خطای خارج از محدوده اشتراک در VBA.xlsm
خطای خارج از محدوده اشتراک در VBA چیست؟ خطای
VBA Subscript خارج از محدوده زمانی رخ میدهد که ما سعی میکنیم به عضوی که وجود ندارد یا مجموعه آرایهای موجود در اکسل دسترسی داشته باشیم. این یک نوع خطای " خطای زمان اجرا 9 " در کدنویسی VBA در اکسل است.
این خطا معمولاً به این شکل است،
5 دلیل با راه حل های خطای زیرمجموعه خارج از محدوده در VBA
این بخش 5 دلیل رایج برای وقوع را مورد بحث قرار می دهد. خطای زیرنویس خارج از محدوده و راه حل های آن چیست.
1. خطای Subscript Out of Range در VBA for Nonexistent Workbook
هنگامی که سعی می کنید به یک کتاب کار Excel که باز نیست دسترسی پیدا کنید، با خطای " Subscript out of range " مواجه خواهید شد.
اگر سعی کنیم کد نشان داده شده در بالا را اجرای کنیم، با خطا مواجه خواهیم شد زیرا هیچ کتاب کار اکسل با نام " وجود ندارد. Sales " که در حال حاضر باز است.
راه حل
برای حل این خطا، ابتدا کتاب کار Excel را که می خواهید به آن دسترسی داشته باشید باز کنید و سپس اجرا کنید. ماکرو.
2. اشتراک خطای خارج از محدوده در VBA برای ناموجودکاربرگ
هنگامی که سعی می کنید به یک کاربرگ دسترسی پیدا کنید که در کتاب کار اکسل وجود ندارد، در VBA نیز با خطای " Subscript out of range " مواجه خواهید شد. .
اگر سعی کنیم کد نشان داده شده در بالا را اجرا کنیم، با خطا مواجه خواهیم شد زیرا " Sheet2 <وجود ندارد. کاربرگ 2>” در کتاب کار ما موجود است.
راه حل
برای حل این خطا، باید برگه اکسل را داشته باشید که می خواهید در کتاب کار در حال اجرا به آن دسترسی داشته باشید و سپس ماکرو را اجرا کنید.
3. اشتراک خطای خارج از محدوده در VBA برای عناصر آرایه تعریف نشده
اگر طول یک آرایه پویا را با کلمه DIM یا REDIM در Excel VBA ، سپس با خطای " Subscript out of range " مواجه خواهید شد.
در کد بالا، آرایه را در ابعاد 5 تا 10 اعلام کردیم اما به زیرنویس شاخص 3 اشاره کردیم که کمتر از 5 است.
راه حل
برای حل این مشکل، شاخص بین بعد آرایه را اعلام کنید.
این قطعه کد e کاملاً خوب کار می کند زیرا در اینجا به زیرنویس ایندکس 5 اشاره کردیم که در محدوده 5 تا 10 قرار دارد.
4. Subscript Out of Range Error در VBA برای Invalid Collection/ آرایه
هنگامی که زیرنویس بزرگتر یا کوچکتر از محدوده زیرنویس ممکن است، خطای Subscript out of range رخ خواهد داد.
به مثال بالا نگاه کنید، مامتغیر را به عنوان یک آرایه اعلام کرد، اما به جای اختصاص یک نقطه شروع و پایان، ما مستقیماً اولین آرایه را با مقدار 20 اختصاص داده ایم.
راه حل
به این مشکل را برطرف کنید، باید طول آرایه را با نقطه شروع و پایان اختصاص دهیم.
این کد هیچ خطایی نمی دهد زیرا اکنون آرایه را اعلام کرده ایم. با نقطه شروع 1 و نقطه پایان 5.
5. Subscript Out of Range Error در VBA برای Shorthand Script
اگر از کوتاه نویسی استفاده می کنید زیرنویس و به یک عنصر نامعتبر اشاره می کند، سپس با خطای " Subscript out of range " در Excel VBA مواجه خواهید شد. برای مثال، [A2] مخفف ActiveSheet.Range(A2) است.
راه حل
برای رفع این، شما باید از نام کلید و شاخص معتبر برای مجموعه استفاده کنید. به جای نوشتن ActiveSheet.Range(A2) ، می توانید فقط [ A2 ] را بنویسید.
مزیت خطای خارج از محدوده اشتراک Excel در VBA<خطای 2>
- VBA Subscript خارج از محدوده یا " Run-Time Error 9 " واقعاً برای تعیین موقعیت خطا در جایی که رخ داده مفید است. در کد VBA .
- این خطا به کاربران کمک می کند تا نوع خطا را پیدا کنند تا بتوانند با توجه به کد خطا راه حل ها را بررسی و پیدا کنند.
چیزهایی که باید به خاطر بسپارید
- از آنجایی که این خطا هر مرحله از کد را کامپایل می کند تا دقیقاً کدام بخش را به ما هدایت کند.کدی که در واقع باید برای آن اقداماتی انجام دهیم، بنابراین بهتر است در صورت داشتن یک خط کد بزرگ، هر خط کد را یکی یکی با فشار دادن کلید F8 کامپایل کنید.
نتیجه گیری
این مقاله دلایل و راه حل های خطای Subscript خارج از محدوده Excel را در VBA به شما نشان داد. امیدوارم این مقاله برای شما بسیار مفید بوده باشد. هر گونه سوالی در مورد موضوع بپرسید.