আপনি যদি AutoFilter method of Range Class Failed এই এরর মেসেজের সম্ভাব্য কারণ ও সমাধান খুঁজে পাওয়ার জন্য কষ্ট করছেন, তবে এই আর্টিকেল আপনার জন্য। তাহলে, মূল আর্টিকেলে যাই।
এখানে, আমরা ৫টি সম্ভাব্য সমাধান দেখাব নিচের ডেটাসেট ব্যবহার করে যেখানে আমরা অটোফিল্টার ফিচার প্রয়োগ করব একটি ক্রাইটেরিয়া ভিত্তিক রেঞ্জ ফিল্টার করতে।
আমরা এখানে মাইক্রোসফট এক্সেল ৩৬৫ ভার্সন ব্যবহার করেছি, আপনি সুবিধামতো অন্য ভার্সনও ব্যবহার করতে পারেন।
এখানে, আমরা নিচের রেঞ্জটি VBA কোড দিয়ে বিক্রয়ের মান ২৫০০-এর চেয়ে বড় হলে ফিল্টার করার চেষ্টা করব।
রেঞ্জ ফিল্টার করার জন্য আমরা নিচের কোডটি ব্যবহার করেছি
Sub fixing_autofilter_issue_1() Dim sht As Worksheet Set sht = Worksheets("Field Number") sht.Range("B3:D3").AutoFilter field:=100, Criteria1:=">=2500" End Sub
এখানে, field: রেঞ্জের কলাম নম্বর নির্দেশ করতে ব্যবহৃত হয়, যা আমরা ১০০ করে দিয়েছি কিন্তু এই রেঞ্জে ৩-এর অধিক কলাম নেই।
তাই, F5 চাপলে আমরা এরর মেসেজ AutoFilter method of Range Class Failed পাচ্ছি।
➤ এই সমস্যা সমাধান করতে, রেঞ্জের কলাম নম্বর অনুযায়ী সঠিক ফিল্ড নম্বর ব্যবহার করুন (আমরা ৩ ব্যবহার করছি কারণ এটি রেঞ্জের Sales কলামের সিরিয়াল নম্বর)।
Sub fixing_autofilter_issue_1() Dim sht As Worksheet Set sht = Worksheets("Field Number") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub
➤ F5 চাপুন।
এখন, আপনি এরর মেসেজ ছাড়া আপনার রেঞ্জকে ক্রাইটেরিয়া অনুযায়ী ফিল্টার করতে পারবেন।
আমরা নিচের ডেটাসেটে Sales কলামের ভিত্তিতে $2,500.00-এর চেয়ে বড় মান ফিল্টার করার চেষ্টা করব।
Range শিটের রেঞ্জ ফিল্টার করার জন্য আমরা নিচের কোডটি ব্যবহার করেছি।
Sub fixing_autofilter_issue_2() Dim sht As Worksheet Set sht = Worksheets("Range") sht.Range("D3:D100").AutoFilter field:=3, Criteria1:=">=2500" End Sub
এখানে, আমরা রেঞ্জ D3:D100 এবং ফিল্ড নম্বর 3 ব্যবহার করেছি, এবং এই মানগুলো একে অপরের সাথে মেলে না কারণ এই রেঞ্জে শুধু এক কলাম রয়েছে।
তাই, F5 চাপলে আমরা আবার এরর মেসেজ পাচ্ছি।
➤ কোডটি নিচের মত সংশোধন করুন
Sub fixing_autofilter_issue_2() Dim sht As Worksheet Set sht = Worksheets("Range") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub
আমরা রেঞ্জটি B3:D3-এ পরিবর্তন করেছি।
➤ F5 চাপুন।
এরপর, আপনি এরর মেসেজ ছাড়া আপনার রেঞ্জকে ক্রাইটেরিয়া অনুযায়ী ফিল্টার করতে পারবেন।
এখানে, আমাদের কাছে একটি টেবিল আছে যেখানে আমরা কোড দিয়ে ফিল্টার অপশন প্রয়োগ করার চেষ্টা করব Sales কলাম ভিত্তিক করে।
এই উদ্দেশ্যে, আমরা নিচের কোডটি ব্যবহার করেছি
Sub fixing_autofilter_issue_3() Dim sht As Worksheet Set sht = Worksheets("Table") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub
এই কোডে সবকিছু ঠিক লাগছে। চেক করে দেখা যাক।
কিন্তু F5 চাপলে, আমরা এরর মেসেজ পাচ্ছি।
এই সমস্যা সমাধান করতে আমাদের এই টেবিলটিকে রেঞ্জে রূপান্তর করতে হবে।
➤ টেবিলটি নির্বাচন করুন এবং তারপর Table Design ট্যাব >> Tools গ্রুপ >> Convert to Range অপশনটি বেছে নিন।
তারপর, রূপান্তরের নিশ্চয়তা জন্য একটি মেসেজ বক্স দেখাবে।
➤ এখানে Yes চাপুন।
এরপর, আপনি তৈরি করা টেবিল থেকে রেঞ্জ পাবেন।
➤ এখন, আগের কোডটি আবার প্রয়োগ করুন।
Sub fixing_autofilter_issue_3() Dim sht As Worksheet Set sht = Worksheets("Table") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub
➤ F5 চাপুন।
আপনি দেখতে পাচ্ছেন, এই বার AutoFilter method সঠিকভাবে কাজ করেছে।
এখানে, আমাদের কাছে একটি Pivot Table আছে যেখানে দ্বিতীয় কলামে বিক্রয়ের মান রয়েছে যার ভিত্তিতে আমরা AutoFilter method প্রয়োগ করব।
তাই, আমরা নিচের কোডটি প্রয়োগ করেছি।
Sub fixing_autofilter_issue_4() Dim sht As Worksheet Set sht = Worksheets("Pivot") sht.Range("A3:B3").AutoFilter field:=2, Criteria1:=">=2500" End Sub
এখানে, ফিল্ড নম্বর 2 রেঞ্জ A3:B3-এর দ্বিতীয় কলামের জন্য।
F5 চাপলে, আপনি এরর মেসেজ AutoFilter method of Range Class Failed পাবেন।
এই সমস্যা সমাধান করতে আপনি Pivot table-এর সোর্স রেঞ্জে এই AutoFilter method প্রয়োগ করতে পারেন।
আপনি দেখতে পাচ্ছেন, এই টেবিলের জন্য আমাদের যেই সোর্স রেঞ্জটি আছে সেটি Source শিটে অবস্থিত এবং এখানে আমরা আমাদের কোড প্রয়োগ করব।
➤ এই সোর্স রেঞ্জের জন্য নিচের কোডটি প্রয়োগ করুন।
Sub fixing_autofilter_issue_4_1() Dim sht As Worksheet Set sht = Worksheets("Source") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub
➤ F5 চাপুন।
চূড়ান্তভাবে, আপনি Sales কলামের জন্য দেওয়া ক্রাইটেরিয়া অনুযায়ী রেঞ্জটি ফিল্টার করতে পারবেন।
এই সেকশনে, আমরা একটি মাইনর সমস্যা নিয়ে আলোচনা করব যা কদাচিৎ AutoFilter Method of Range Class Failed এরর মেসেজ উদ্ভাবন করে। কিন্তু আপনি সচেতন থাকতে পারেন যে এটিই সেই এররটির কারণ হতে পারে।
পূর্বের উদাহরণগুলোর মতো, আমরা নিচের রেঞ্জে AutoFilter method প্রয়োগ করব।
ফিল্টার প্রয়োগ করার জন্য আমরা নিচের কোডটি ব্যবহার করেছি।
Sub fixing_autofilter_issue_5() Dim sht As Worksheet Set sht = Worksheets("Header") sht.Range("B3:D11").AutoFilter field:=3, Criteria1:=">=2500" End Sub
এখানে, আমরা পুরো ডেটাসেটের জন্য রেঞ্জ B3:D11 ব্যবহার করেছি যা অপ্রয়োজনীয়, এবং বড় রেঞ্জের জন্য কখনো কখনো এটি সেই এরর মেসেজের কারণ হতে পারে।
তাই, আমরা সেটি নিচের কোডে পরিবর্তন করতে পারি শুধু হেডারকে রেঞ্জ হিসেবে ব্যবহার করে।
Sub fixing_autofilter_issue_5() Dim sht As Worksheet Set sht = Worksheets("Header") sht.Range("B3:D3").AutoFilter field:=3, Criteria1:=">=2500" End Sub
F5 চাপলে, আপনি যেকোনো সমস্যা ছাড়া আপনার প্রত্যাশিত ফলাফল পাবেন।
এই আর্টিকেলে, আমরা এক্সেলে AutoFilter method of Range Class Failed সমস্যার সম্ভাব্য ফিক্সগুলো কভার করার চেষ্টা করেছি। আশা করি এটি আপনার জন্য উপকারী হবে। আপনার যেকোনো পরামর্শ বা প্রশ্ন থাকলে, মন্তব্য বিভাগে শেয়ার করতে মনোশ করবেন না।
- এক্সেল VBA দিয়ে অটোফিল্টার এবং ভিজিবল সারি কপি করুন
- VBA অটোফিল্টার: স্মলেস্ট টু লার্জেস্ট সর্ট (৩টি পদ্ধতি)
- VBA দিয়ে এক্সেলে নির্দিষ্ট মানের সমান নয় এমন মান অটোফিল্টার করুন
- এক্সেল VBA: অটোফিল্টার রিমুভ যদি অস্তিত্বে থাকে (৭টি উদাহরণ)