ভিবিএ সাবস্ক্রিপ্ট রেঞ্জের বাইরে (রান-টাইম ত্রুটি '9') | কেন এই ত্রুটি ঘটে?

এক্সেল ভিবিএ সাবস্ক্রিপ্ট আউট রেঞ্জ

ভিবিএতে সাবস্ক্রিপ্টের বাইরে থাকা একটি ত্রুটি যা আমরা যখন কোনও কোড বা কোন ভেরিয়েবলের উল্লেখ করতে চেষ্টা করি যা কোনও কোডে বিদ্যমান নয়, উদাহরণস্বরূপ, ধরা যাক আমরা x নামের একটি ভেরিয়েবল না রেখে আমরা x বর্ধিত ফাইল বাক্স ব্যবহার করি পরিসীমা ত্রুটির বাইরে সাবস্ক্রিপ্ট সম্মুখীন হবে।

পরিসরের বাইরে ভিবিএ সাবস্ক্রিপ্ট দেখা দেয় কারণ আমরা যে বস্তুটি অ্যাক্সেস করার চেষ্টা করছি সেটির অস্তিত্ব নেই। এটি ভিবিএ কোডিংয়ে একটি ত্রুটি ধরণের এবং এটি একটি "রান টাইম ত্রুটি 9"। দক্ষ কোড লেখার জন্য ধারণাগুলি বোঝা গুরুত্বপূর্ণ এবং কোডটি দক্ষতার সাথে ডিবাগ করার জন্য আপনার ভিবিএ কোডটির ত্রুটিটি বোঝা আরও গুরুত্বপূর্ণ।

যদি আপনার কোডিং ত্রুটি হয় এবং আপনি জানেন না যে আপনি চলে গেলে সেই ত্রুটিটি কী।

একজন রোগী রোগটি কী তা না জেনে তার রোগীকে ওষুধ দিতে পারবেন না। নিশ্চিত চিকিত্সক এবং রোগীদের জন্য, উভয়ই জানেন যে একটি রোগ রয়েছে (ত্রুটি) তবে রোগটি ওষুধ দেওয়ার চেয়ে বোঝা গুরুত্বপূর্ণ (ত্রুটি)। আপনি যদি ত্রুটিটি পুরোপুরি বুঝতে পারেন তবে সমাধানটি খুঁজে পাওয়া আরও সহজ।

এই নিবন্ধে অনুরূপ একটি নোটে, আমরা সাধারণত আমাদের নিয়মিততার সম্মুখীন হওয়া একটি গুরুত্বপূর্ণ ত্রুটি দেখতে পাব অর্থাৎ এক্সেল ভিবিএতে "সাবস্ক্রিপ্ট আউট রেঞ্জ" ত্রুটি।

এক্সেল ভিবিএতে রেঞ্জ ত্রুটির বাইরে সাবস্ক্রিপ্ট কী?

উদাহরণস্বরূপ, আপনি যদি সেই শীটটি উল্লেখ করছেন যা কার্যপত্রিকা নেই তবে আমরা পাই রান টাইম ত্রুটি 9: "সাবস্ক্রিপ্ট রেঞ্জের বাইরে"।

আপনি যদি এন্ড বোতামে ক্লিক করেন তবে এটি উপ-প্রক্রিয়াটি শেষ করবে, আপনি ডিবাগ এ ক্লিক করলে এটি আপনাকে কোডের লাইনে নিয়ে যাবে যেখানে এটির একটি ত্রুটি দেখা দিয়েছে এবং আপনাকে মাইক্রোসফ্ট ওয়েবসাইটের পৃষ্ঠায় নিয়ে যাবে take

কেন সাবস্ক্রিপ্ট আউট রেঞ্জ ত্রুটি ঘটে?

আমি যেমন চিকিত্সক হিসাবে বলেছিলাম ওষুধ সম্পর্কে চিন্তা করার আগে মৃতের সন্ধান করা গুরুত্বপূর্ণ। ভিবিএ সাবস্ক্রিপ্টের বাইরে পরিসীমা ত্রুটি দেখা দেয় যখন কোডের লাইনটি আমরা প্রবেশ করানো বস্তুটি না পড়ে।

উদাহরণস্বরূপ নীচের চিত্রটি দেখুন, আমার কাছে শীট 1, শিট 2, শিট 3 নামে তিনটি শীট রয়েছে।

কোডে এখন আমি শিটটি "বিক্রয়" নির্বাচন করতে কোডটি লিখেছি।

কোড:

 সাব ম্যাক্রো 2 () পত্রক ("বিক্রয়")। সমাপ্তি নির্বাচন করুন 

যদি আমি F5 কী বা ম্যানুয়ালি ব্যবহার করে এই কোডটি চালিত করি তবে আমি শেষ হয়ে যাব রান টাইম ত্রুটি 9: "সাবস্ক্রিপ্ট রেঞ্জের বাইরে"।

এটি কারণ আমি ওয়ার্কশিট অবজেক্ট "বিক্রয়" অ্যাক্সেস করার চেষ্টা করেছি যা ওয়ার্কবুকটিতে নেই। এটি একটি রান টাইম ত্রুটি কারণ কোডটি চালানোর সময় এই ত্রুটি ঘটেছে।

আর একটি সাধারণ সাবস্ক্রিপ্ট ত্রুটি আমরা পাই যখন আমরা সেখানে নেই এমন ওয়ার্কবুকটি উল্লেখ করি। উদাহরণস্বরূপ নীচের কোডটি দেখুন।

কোড:

 সাব ম্যাক্রো 1 () ডাব্লু ডাব্লু ওয়ার্কবুক সেট হিসাবে ডাব্লুবিবি = ওয়ার্কবুকস ("বেতন শিট.এক্সলসেক্স") শেষ সাব 

উপরের কোডে বলা হয়েছে যে ভেরিয়েবল ডাব্লুবিউ "বেতনের পত্রক। এক্সএলএক্সএক্সএক্সএক্স" এর সমান হওয়া উচিত। এখন পর্যন্ত, এই ওয়ার্কবুকটি আমার কম্পিউটারে খোলা নেই। আমি যদি এই কোডটি ম্যানুয়ালি বা F5 কী দ্বারা চালিত করি তবে আমি পেয়ে যাব রান টাইম ত্রুটি 9: "সাবস্ক্রিপ্ট রেঞ্জের বাইরে"।

এটি আমি যে ওয়ার্কবুকটি উল্লেখ করছি তার কারণে এটি বর্তমানে হয় না বা অস্তিত্বহীন।

অ্যারেগুলিতে ভিবিএ সাবস্ক্রিপ্ট ত্রুটি

আপনি যখন অ্যারেটিকে গতিশীল অ্যারে হিসাবে ঘোষণা করেন এবং আপনি যদি ভিবিএতে ডিআইএম বা রেডিম শব্দটি ব্যবহার না করেন তবে অ্যারের ত্রুটির বাইরে সাধারণত আমরা ভিবিএ সাবস্ক্রিপ্ট পাই। উদাহরণস্বরূপ, নীচের কোডটি দেখুন।

কোড:

 সাব ম্যাক্রো 3 () ডিমে মাইআর্য () লম্বা মাইআরে হিসাবে (1) = 25 শেষ সাব 

উপরের অংশে, আমি ভেরিয়েবলটিকে অ্যারে হিসাবে ঘোষণা করেছি তবে আমি শুরু এবং শেষের বিন্দুটি বরাদ্দ করি নি বরং সরাসরি প্রথম অ্যারের মান 25 দিয়েছি।

আমি যদি F5 কী বা ম্যানুয়ালি ব্যবহার করে এই কোডটি চালিত করি তবে আমরা পেয়ে যাব রান টাইম ত্রুটি 9: "সাবস্ক্রিপ্ট রেঞ্জের বাইরে"।

এই সমস্যাটি সমাধান করতে আমাকে রেডিম শব্দটি ব্যবহার করে একটি অ্যারের দৈর্ঘ্য নির্ধারণ করতে হবে।

কোড:

 সাব ম্যাক্রো 3 () ডিমে মাইআর্য () লম্বা রিডিম মাইআর্রে (1 থেকে 5) মাইআর্য (1) = 25 শেষ সাব 

এই কোডটি কোনও ত্রুটি দেয় না।

ভিবিএ কোড শেষে ত্রুটিগুলি কীভাবে দেখানো যায়?

কোডটি চালু এবং চলমান অবস্থায় আপনি যদি ত্রুটিটি দেখতে না চান তবে শেষে একটি ত্রুটির তালিকা প্রয়োজন হয় তবে আপনাকে "অন ত্রুটি পুনরায় শুরু করুন" ত্রুটি হ্যান্ডলারটি ব্যবহার করতে হবে। নীচের কোডটি দেখুন।

কোড:

 সাব ম্যাক্রো 1 () টিম ওয়ার্ক হিসাবে ত্রুটির সাথে ত্রুটি পুনরায় শুরু করুন পরবর্তী সেট Wb = ওয়ার্কবুকস ("বেতন শিট.এক্সলএক্স") এমএসজিবক্স এরিয়ার বিবরণ শেষ সাব 

আমরা দেখেছি যে এই কোড নিক্ষেপ করা হবে রান টাইম ত্রুটি 9: "সাবস্ক্রিপ্ট রেঞ্জের বাইরে এক্সেল ভিবিএতে. তবে আমাকে ভিবিএতে ত্রুটি পুনরায় শুরু করার সময় ত্রুটি হ্যান্ডলারটি ব্যবহার করতে হবে কোড চালানোর সময় আমরা কোনও ত্রুটি বার্তা পাব না বরং শেষ বার্তা বাক্সে আমাকে ত্রুটির বর্ণনাটি এভাবে দেখায়।

আপনি এখানে এক্সেল ভিবিএ সাবস্ক্রিপ্ট আউট রেঞ্জ টেম্পলেটটি ডাউনলোড করতে পারেন: - ভিবিএ সাবস্ক্রিপ্ট আউট রেঞ্জ টেম্পলেট