আমি এই সব সময় vba দিয়ে করি। আমি নিশ্চিত যে আমি কলাম প্লেসমেন্টের জন্য সামান্য পরিবর্তনগুলি সহ 95% অফিসের পরে একই পদ্ধতি ব্যবহার করেছি। আপনি যদি ভেরিয়েবলগুলি সংজ্ঞায়িত না করেন তবে এটি কম লাইন দিয়ে সম্পন্ন করা যেতে পারে। আপনার গ্রুপটি সংজ্ঞায়িত করার জন্য আপনার যদি অনেকগুলি লাইন বা আরও অনেক কিছু যেতে হয় তবে এটি দ্রুত করা যায়।
আমি এমন পরিস্থিতিতে পড়েছি যেখানে একটি 'গ্রুপ' 2-5 কোষের উপর ভিত্তি করে। এই উদাহরণটি কেবল একটি কলামে দেখায়, তবে কেউ যদি এটির সাথে খেলার জন্য সময় নেয় তবে এটি সহজেই প্রসারিত হতে পারে।
এটি 3 টি কলাম ধরেছে এবং আপনাকে গ্রুপ_মূল্য কলাম অনুসারে বাছাই করতে হবে। আপনি ম্যাক্রো চালানোর আগে, প্রথম_আর গ্রুপ_মূল্য কলামে তুলনা করতে চান তা নির্বাচন করুন।
'গ্রুপ_ভ্যালু, কিছু_সংখ্যার, খালি_ কলামটিমহোল্ডসুবোটালগুলি
'(জিনিস এখানে যায়)
'কুকি 1 খালি
'কুকি 3 খালি
'কেক 4 খালি
'টুপি 0 খালি
'টুপি 3 খালি
'...
'বন্ধ
উপ উপ-মোট ()
'দুটি স্ট্রিং এবং একটি মোট উপ-কাউন্টার জিনিস নির্ধারণ করুন
এই একটাই, ধীরে ধীরে স্ট্রিং
দ্বিগুণ হিসাবে ধীর সাব-অ্যাকাউন্ট
'মূল্য বীজ
thisOne = অ্যাক্টিভেল.ভ্যালু
ওটেন = অ্যাক্টিভেল.অফসেট (1, 0)
উপ-হিসাব = 0
'একটি লুপ সেটআপ করুন যা এটি স্টপ ভ্যালুতে পৌঁছা পর্যন্ত চলবে
(অ্যাক্টিভেল.ভ্যালু <> "স্টপ")
'এর নীচের ঘরের সাথে একটি ঘর মান তুলনা করে।
যদি (thisOne = thatOne) তবে
'যদি ঘরগুলি সমান হয় তবে সাবকাউন্টে লাইন গণনা যুক্ত করা হবে
সাবকাউন্ট = সাবকাউন্ট + অ্যাক্টিভেল.অফসেট (0, 1) .মূল্য
আর
'যদি ঘরগুলি সমান না হয় তবে উপ-হিসাব লিখিত হবে এবং উপফলক পুনরায় সেট করা হবে।
অ্যাক্টিভেল.অফসেট (0, 2)। মূল্য = অ্যাক্টিভেল.অফসেট (0, 1)
উপ-হিসাব = 0
যদি শেষ
'নীচের পরের ঘরটি নির্বাচন করুন
অ্যাক্টিভেল.অফসেট (1, 0)। নির্বাচন করুন
'সক্রিয় কক্ষের মানগুলি এবং তার নীচের একটিকে ভেরিয়েবলগুলিতে নির্ধারণ করুন
thisOne = অ্যাক্টিভেল.ভ্যালু
ওটেন = অ্যাক্টিভেল.অফসেট (1, 0)
পথ চলা
শেষ সাব