এক্সেল কেবলমাত্র ইউডিএফগুলির পুনরায় গণনা করে যখন তাদের ইনপুট পরিবর্তন হয়
আপনি একটি ব্যবহারকারী-সংজ্ঞায়িত ফাংশন (ইউডিএফ) তৈরি করেছেন। এক্সেল কেবলমাত্র একটি ইউডিএফ কোড চালায় যখন ঘর (গুলি) যে ফাংশন পরিবর্তনে ইনপুট হিসাবে পরিবেশন করে।
উদাহরণস্বরূপ, ধরুন আমার কাছে এই ইউডিএফ রয়েছে:
Public Function MyFunction(Target As Range)
MsgBox "The target cell's address is " & Target.Address
End Function
এবং আমার কার্যপত্রকের A1 কক্ষে আমি সূত্রটি সহ ঘরটি উল্লেখ করি:
=MyFunction(A2)
আমার ওয়ার্কবুকের স্বাভাবিক ব্যবহারের সময়, আমার ইউডিএফ কোডটি কেবল তখনই কল করা হবে যখন এ 2 এর সূত্র দ্বারা রেফারেন্স করা ঘর A2 বা অন্য কোনও কক্ষের বিষয়বস্তুতে পরিবর্তন হয়েছে।
সলিউশন
আপনি এই আচরণটি বিভিন্ন উপায়ে কাজ করতে পারেন:
- ফোর্স এক্সেল ম্যানুয়াল পুনঃগণনা করার ওয়ার্কবুক মধ্যে সূত্রের সব এমনকি যদি তারা না গত হিসাব যেহেতু দ্বারা পরিবর্তিত হয়েছে টিপে Ctrl + + Alt+ + F9Windows এ এবং (আমি Mac এ অনুমান) Cmd+ + Alt+ + F9। যদি এটি কাজ না করে আপনি Shiftপুনরায় গণনা করার আগে অতিরিক্ত যা নির্ভরশীল সূত্রগুলি পরীক্ষা করে তা যুক্ত করার চেষ্টা করতে পারেন ।
আপনার ইউডিএফ দ্বারা রেফারেন্স হওয়া কোনও একটি কক্ষে একটি উদ্বায়ী ফাংশন অন্তর্ভুক্ত করুন। অতিরিক্ত প্যারামিটার গ্রহণ করতে আপনার ভিবিএ ফাংশনের সংজ্ঞা সংশোধন করে এটি করুন:
Public Function MyFunction(Target As Range, Optional VolatileParameter As Variant)
তারপরে কোনও উদ্বায়ী ফাংশনের ফলাফল যেমন ইউডিএফ-তে পাস করার জন্য আপনার ইউডিএফকে রেফারেন্সিং কক্ষে সম্পাদনা করুন Now()
:
=MyFunction(A2,Now())
নেট ফলাফলটি হ'ল এক্সেল আপনার ইউডিএফ-এর রেফারেন্স সম্বলিত কক্ষটিকে বিবেচনা করবে এবং প্রতিবার ওয়ার্কশিটটি পরিবর্তন করার সময় পুনরুদ্ধার করা প্রয়োজন কারণ এটি একটি অস্থির ফাংশনকে উল্লেখ করে।
ইউডিএফ সমন্বিত কক্ষটি সম্পাদনা করুন। কেবলমাত্র ঘরে প্রবেশ করে তারপরে পরিবর্তন না করে এন্টার টিপুন কোনও আপডেট ট্রিগার করার জন্য পর্যাপ্ত হওয়া উচিত।
ম্যাক্রো বোতামটি তৈরি করুন যা নিম্নলিখিত কোডটির লাইন চালায় :
Application.CalculateFull
আপনার ওয়ার্কবুকের খোলা ইভেন্টে নিম্নলিখিত কোডটি রাখুন:
ActiveWorkbook.ForceFullCalculation = True
এটি পুনরায় গণনার প্রয়োজন বলে বিশ্বাস না করেই এক্সেল সর্বদা সমস্ত সূত্র পুনরায় গণনা করতে বাধ্য করে। এক্সেল পুনরায় চালু না হওয়া পর্যন্ত এই সেটিং কার্যকর থাকবে in
কেন এক্সেল সর্বদা আমার ইউডিএফ পুনরায় গণনা করে না?
এক্সেল যখন একটি স্বয়ংক্রিয় পুনঃ গণনা সম্পাদন করে, তখন এটি কার্য পুস্তকের প্রতিটি সূত্র পুনরায় গণনা করে না। পরিবর্তে এটি কেবলমাত্র সেই কোষগুলিকেই আপডেট করে যা সূত্রে সর্বাধিক সংশোধিত কক্ষের উল্লেখ করে। এই পদ্ধতিটি কেবলমাত্র বিশাল সংখ্যাগরিষ্ঠদের জন্য একই ফলাফল নিয়ে আসতে পুরো ওয়ার্কবুক জুড়ে অগণিতভাবে অনেক গণনা সম্পাদনের দীর্ঘতর প্রক্রিয়া এড়িয়ে চলে।
একটি ইউডিএফের সাথে, ওয়ার্কবুকের একমাত্র উল্লেখগুলি যা এক্সেলের গণনা ইঞ্জিন সচেতন সেগুলি হ'ল ফাংশনের ইনপুটগুলিতে চিহ্নিত। এক্সেল ইউডিএফ-এর মধ্যে ভিবিএ কোড পরীক্ষা করতে পারে না এবং ফাংশনের আউটপুটকে প্রভাবিত করতে পারে এমন অন্যান্য ঘরগুলি সনাক্ত করতে পারে না। ফাংশনের লেখক ওয়ার্কবুকের যে কোনও সংখ্যক পরিবর্তনের উপর ভিত্তি করে বিভিন্ন ফলাফল ফেরত দেওয়ার জন্য ফাংশনটি তৈরি করতে পারেন, তবে এক্সেল জানে এমন একমাত্র কোষ এই ফাংশনের ফলাফল পরিবর্তন করবে বলে ঘোষিত ইনপুট। সুতরাং, ইউডিএফ পুনর্নির্মাণ করা দরকার কিনা তা সিদ্ধান্ত নেওয়ার সময় এই কক্ষগুলির পরিবর্তনগুলি কেবলমাত্র এক্সেলই মনোযোগ দেয়।