আমি ধরে নিয়েছি ত্রুটিটি কোডের মধ্যে রয়েছে কারণ যখন আমি রানটাইম ত্রুটি পেয়েছি তখন প্রদত্ত কক্ষে কোনও আউটপুট ছিল না। সমস্যাটি আসলে ঘটে যদি কোনও ঘরে কোনও সূত্র লিখতে হয় এবং এটি সেই পপ আপ উইন্ডোটি তৈরি করে যা বলে যে "আমরা এই সূত্রটি নিয়ে একটি সমস্যা পেয়েছি ...." #Name ?, # VALUE এর মতো নয়! , # এন / এ টাইপ ত্রুটি। আমার ক্ষেত্রে, আমার কোডটি একটি টেবিলের মধ্যে একটি পরিসর সেট করেছে, যার নাম মেইন টেবিল এবং কলামের শিরোনামগুলির মধ্যে একটি কার্যকর মূল্য ছিল। কোডটি একটি স্ট্রিং রেফারেন্সিং মেইন টেবিল [ব্যয়] হিসাবে একটি সূত্র সেট করে, যা মেইনটেবল [কার্যকর ব্যয়] হওয়া উচিত।
ভিবিএ একটি রানটাইম ত্রুটি তৈরি করবে, সাবটি থামবে এবং সমস্যাটির স্ট্রিংটি কখনই কোষে আউটপুট হবে না। নিম্নলিখিত কোডটি একটি সাব থামবে। (অতিরিক্ত "(" পপআপ উইন্ডো সূত্র ত্রুটি দেবে))
Range("A1").Value = "=Sum((B2:B4)"
নিম্নলিখিত কোডটি নিরবচ্ছিন্নভাবে কাজ করে যদিও এটি একটি #NAME দেয়? কক্ষ এ 1 এ ত্রুটি।
Range("A1").Value = "=Sum(PotatoSalad)"
আমি স্ট্রিংগুলির একটি অ্যারে দিয়ে একটি দ্রুত পরীক্ষাও করেছি। একটি অ্যারের মধ্যে সূত্রগুলি স্ট্রিংগুলিতে সংরক্ষণ করা কোডের সমস্যাটিকে বাধাগ্রস্থ হওয়ার কারণ হিসাবে সূত্রগুলি রিফ্রেশ হওয়া পর্যন্ত মূল্যায়ন করবে না বলে মনে হচ্ছে। এই প্রশ্নটি কোষগুলিতে সূত্রগুলি ফেলে দেওয়ার জন্য কোনও অ্যারে ব্যবহার করার পরে কী ঘটে যায় সে সম্পর্কিত আরও বিশদে চলে যায় - এআর ভেরিয়েন্ট অ্যারে ব্যবহার করে লম্বা গল্পের সংক্ষিপ্তসারগুলি সূত্রকে মূল্যায়ন এবং বন্ধ করার কারণ ঘটায়। https://stackoverflow.com/questions/19238844/strange-behavior-when-assigning-a-vba-array-to-formulas-of-an-excel-range
নিম্নলিখিত কোডটি कक्ष A1 পুনরায় গণনা করতে বাধ্য না করা পর্যন্ত কাজ করবে।
Dim MyArray(0 to 0) as String
MyArray(0) = "=Sum((B2:B4)"
Range("A1").Value = MyArray()
বৈকল্পিক হিসাবে একই অ্যারে পাস করা একটি রানটাইম ত্রুটি তৈরি করবে।
Sheets("Material").Last.Offset(0, 1).Value = "A"
উদাহরণ স্বরূপ.Last
ফাংশন আমাকে সন্দেহজনক মনে হচ্ছে।