আমি সত্যিই ইভেন্টটি উত্তেজিত করার পরে এই গবেষণা এবং এটি কীভাবে কাজ করে তা শিখতে অনেক সময় ব্যয় করেছি। যেহেতু প্রচুর পরিমাণে বিক্ষিপ্ত তথ্য ছিল আমি যেহেতু সব জায়গায় এক জায়গায় কাজ করতে পেয়েছি তা ভাগ করে নেওয়ার সিদ্ধান্ত নিয়েছি, ধাপে ধাপে:
1) ভিবিএ প্রকল্পের অধীনে ওপেন ভিবিএ সম্পাদক (আপনার ওয়ার্কবুকনাম.এক্সএলএসএম) মাইক্রোসফ্ট এক্সেল অবজেক্টটি খুলুন এবং সেই শীটটি নির্বাচন করুন যাতে পরিবর্তনের ইভেন্টটি সম্পর্কিত হবে।
2) ডিফল্ট কোড ভিউটি হল "জেনারেল" " উপরের মাঝের ড্রপ-ডাউন তালিকা থেকে "ওয়ার্কশিট" নির্বাচন করুন।
3) প্রাইভেট সাব ওয়ার্কশিট_স্লেশনচেনশন যেমনটি হওয়া উচিত ইতিমধ্যে রয়েছে, একে একে ছেড়ে যান। উপরের থেকে মাইক রোজেনব্লুমের কোড অনুলিপি করুন / আটকান এবং পরিবর্তন করুন যার জন্য আপনি যে সেলটি দেখছেন তার জন্য রেফারেন্স রেঞ্জ করুন (বি 3, আমার ক্ষেত্রে)। আপনার ম্যাক্রোটি এখনও রাখুন না (তবে "তারপর" এর পরে আমি "ম্যাক্রো" শব্দটি সরিয়ে ফেলেছি):
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("H5")) Is Nothing Then
End Sub
বা উপরের বামে ড্রপ-ডাউন তালিকা থেকে, "পরিবর্তন" নির্বাচন করুন এবং প্রাইভেট সাব এবং শেষ সাব এর মধ্যবর্তী জায়গায়, পেস্ট করুন If Not Intersect(Target, Me.Range("H5")) Is Nothing Then
৪) "তারপরে" এর পরে লাইনে ইভেন্টগুলি বন্ধ করে দিন যাতে আপনি যখন আপনার ম্যাক্রো কল করেন, এটি ইভেন্টগুলিকে ট্রিগার না করে এবং এই ওয়ার্কশিট_চেন্জটিকে আবার কখনও শেষ না হওয়া চক্রের সাথে চালানোর চেষ্টা করবে যা এক্সেল ক্র্যাশ করে এবং / অথবা অন্যথায় সমস্ত কিছু মিস করে:
Application.EnableEvents = False
5) আপনার ম্যাক্রো কল করুন
Call YourMacroName
6) ইভেন্টগুলি আবার চালু করুন যাতে পরবর্তী পরিবর্তন (এবং যে কোনও / সমস্ত ইভেন্ট) ট্রিগার:
Application.EnableEvents = True
7) ইফ ব্লক এবং সাবটি শেষ করুন:
End If
End Sub
পুরো কোড:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("B3")) Is Nothing Then
Application.EnableEvents = False
Call UpdateAndViewOnly
Application.EnableEvents = True
End If
End Sub
এটি মডিউলগুলির বাইরে / বন্ধ হওয়ার ইভেন্টগুলি গ্রহণ করে যা সমস্যা তৈরি করে এবং কেবল পরিবর্তনের ট্রিগার দেয়, ইভেন্টগুলি বন্ধ করে দেয়, আপনার ম্যাক্রোটি চালায় এবং ইভেন্টগুলিকে আবার চালু করে।