কিভাবে VBA তে InStr ফাংশন ব্যবহার করবেন (3টি সহজ উদাহরণ)

  • এই শেয়ার করুন
Hugh West

Excel VBA কোডগুলির সাথে কাজ করার সময়, আমরা কয়েকটি বিল্ট-ইন ফাংশন দেখতে পাই যা একটি জটিল কাজকে একটি ছোট এক-লাইন কোডে রূপান্তর করে। InStr হল এমন একটি ফাংশন যা Excel VBA-এ উপলব্ধ যা একটি নির্দিষ্ট অবস্থান থেকে শুরু করে অন্য প্রদত্ত স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট স্ট্রিং অনুসন্ধান করে। আজ আমি দেখাব কিভাবে আপনি VBA-তে InStr ফাংশন ব্যবহার করে অন্য একটি প্রদত্ত স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট স্ট্রিং অনুসন্ধান করতে পারেন।

অভ্যাস ওয়ার্কবুক ডাউনলোড করুন

InStr Function.xlsm

পরিচয় VBA InStr ফাংশন

  • সারাংশ

প্রদত্ত অবস্থান থেকে শুরু করে একটি প্রদত্ত স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট স্ট্রিং অনুসন্ধান করে। যদি একটি মিল খুঁজে পায়, তাহলে প্রদত্ত স্ট্রিংয়ে অবস্থানটি ফেরত দেয় যেখান থেকে ম্যাচ শুরু হয়েছিল৷

  • সিনট্যাক্স

InStr([start) ],string1,string2,[তুলনা])

  • আর্গুমেন্ট
<14 <14
আর্গুমেন্ট প্রয়োজনীয়তা বর্ণনা

[start] ঐচ্ছিক যে অবস্থান থেকে এটি অনুসন্ধান করা শুরু করবে। ডিফল্ট হল 1.
স্ট্রিং1 প্রয়োজনীয় যে স্ট্রিংটির মধ্যে এটি একটি প্রদত্ত স্ট্রিং অনুসন্ধান করে৷
স্ট্রিং2 প্রয়োজনীয় যে স্ট্রিংটি এটি একটি প্রদত্ত স্ট্রিংয়ের মধ্যে অনুসন্ধান করে।
[তুলনা] ঐচ্ছিক {-1,0,1,2} এর মধ্যে একটি সংখ্যাসূচক মান যা তুলনার ধরন নির্দিষ্ট করে। দ্যডিফল্ট হল -1 (vbUseCompareOption)। বিকল্প তুলনা বিবৃতি নির্দিষ্ট না থাকলে, বাইনারি তুলনা করুন।

দ্রষ্টব্য:

  • যদিও [start] আর্গুমেন্ট এবং [compare] আর্গুমেন্ট ঐচ্ছিক, আপনি যদি [compare] আর্গুমেন্ট উল্লেখ করেন তাহলে আপনার [start] আর্গুমেন্ট প্রয়োজন। অন্যথায়, এটি একটি ত্রুটি উত্থাপন করবে।
  • যদি [start] আর্গুমেন্ট এবং [compare] আর্গুমেন্টের একটি বা উভয়ই হয় শূন্য , আপনি একটি ত্রুটির সম্মুখীন হবেন।
  • [তুলনা] আর্গুমেন্টের চারটি নির্দিষ্ট মান চারটি ভিন্ন ধরনের তুলনা করে। সেগুলো নিচে উল্লেখ করা হলো:
মান কনস্ট্যান্ট ডেস্ক্রিপশন

-1 vbUseCompareOption এ উল্লেখিত তুলনা সম্পাদন করে বিকল্প তুলনা বিবৃতি।
0 vbBinary Compare একটি বাইনারি তুলনা সম্পাদন করে।
1 vbTextCompare একটি পাঠ্য তুলনা করে | প্রয়োজন হলে কোডটি বাইনারি তুলনা বা টেক্সট তুলনা সার্চ করবে কিনা তা নির্দিষ্ট করে।

অপশন তুলনা টেক্সট

    • সহজ ভাষায় , বাইনারি তুলনা এর অর্থ কেস-সংবেদনশীলতুলনা।
    • সরল ভাষায় , টেক্সট তুলনা অর্থ-অসংবেদনশীল তুলনা।
  • রিটার্ন ভ্যালু
    • স্ট্রিং1 যেখান থেকে স্ট্রিং2 শুরু হয়েছে সেই অবস্থান ফেরত দেয়।
    • যদি স্ট্রিং2 পাওয়া না যায় string1 এর মধ্যে start অবস্থান থেকে শুরু করে, 0 প্রদান করে।
    • যদি string1 শূন্য-দৈর্ঘ্যের হয়, তাহলে 0 প্রদান করে।
    • যদি স্ট্রিং2 শূন্য-দৈর্ঘ্যের হয়, আর্গুমেন্টটি ফেরত দেয় স্টার্ট
    • এবং অবশেষে, যদি স্ট্রিং1 বা string2 হল Null , একটি ত্রুটি দেখায়।

3টি সহজ উদাহরণ VBA InStr ফাংশন ব্যবহার করার জন্য

এ এই বিভাগে, আমরা এক্সেলে VBA InStr ফাংশন প্রয়োগ করার তিনটি সহজ উদাহরণ দেখতে পাব। আসুন VBA কোডে InStr ফাংশনের প্রথম উদাহরণ দেখি।

1। VBA InStr ফাংশন ব্যবহার করে একটি ঠিকানা একটি ইমেল ঠিকানা কিনা তা নির্ধারণ করা

এখানে, আমরা গ্রাহকদের কিছু যোগাযোগের ঠিকানা সম্বলিত একটি ডেটা সেট নিয়েছি। এখানে আমাদের লক্ষ্য হবে ঠিকানাগুলি ইমেল ঠিকানা কিনা তা সনাক্ত করা৷

এখন আমরা সনাক্ত করার জন্য InStr ফাংশন ব্যবহার করে একটি VBA কোড বিকাশ করব এটি একটি ইমেল ঠিকানা হোক বা না হোক। এটি করতে, নীচের ধাপগুলি অনুসরণ করুন৷

পদক্ষেপগুলি:

  • শুরুতে, ডেভেলপার ট্যাবে যান এবং <নির্বাচন করুন 1>ভিজ্যুয়াল বেসিক ( অথবা VBA খুলতে Alt+F11) টিপুনউইন্ডো৷

  • তারপর, VBA উইন্ডোতে, ঢোকান > মডিউল .

  • এর পরে, মডিউলে, নিম্নলিখিত কোডটি পেস্ট করুন:
6950

  • তাছাড়া, আমরা ডিসিশন নামে একটি ফাংশন তৈরি করেছি। এটি একটি ঠিকানা একটি ইমেল ঠিকানা কিনা তা নির্ধারণ করে। আমাদের কাছে থাকা ডেটা সেটে ফাংশনটি প্রয়োগ করা যাক।
  • সেলে C5 , নিম্নলিখিত সূত্রটি লিখুন এবং তারপর ফিল হ্যান্ডেল ব্যবহার করে বাকি সেলগুলি অটোফিল করুন।
=DECISION(B5)

  • যেমন আমরা দেখতে পাচ্ছি, আমরা প্রতিটি ঠিকানা চিহ্নিত করেছি যে এটি একটি ইমেল ঠিকানা কিনা বা না৷

🎓 কোডটি কীভাবে কাজ করে?

  • ফাংশন DECISION(স্ট্রিং 1 হিসাবে)

প্রথম, এটি একটি ফাংশন তৈরি করে যার নাম ডিসিআইএসও string1 নামে স্ট্রিং আর্গুমেন্ট।

  • ডিম পজিশন হিসেবে পূর্ণসংখ্যা

এটি পজিশন<নামের একটি পূর্ণসংখ্যা ভেরিয়েবল ঘোষণা করে 2>।

  • পজিশন = InStr(1, string1, “@”, 0)

এটি এর মান নির্ধারণ করে 1, স্ট্রিং1, “@” এবং 0 আর্গুমেন্ট সহ InStr ফাংশনের আউটপুট হিসাবে অবস্থান ভেরিয়েবল। সংক্ষেপে, এটি ঠিকানায় অবস্থান নির্ধারণ করে যেখানে একটি “@” আছে।

  • যদি অবস্থান = 0 তাহলে সিদ্ধান্ত = "ইমেল নয়"

এটি DECISION ফাংশনের আউটপুট “ইমেল নয়” হিসাবে বরাদ্দ করে, যদি পজিশন ভেরিয়েবল হল 0 , অর্থাৎ ঠিকানাটিতে কোন “@” ছিল না।

(প্রদত্ত স্ট্রিং-এর মধ্যে কোনো স্ট্রিং না পাওয়া গেলে মনে করুন, InStr ফাংশন 0 রিটার্ন করে।

  • অন্যথায় সিদ্ধান্ত = "ইমেল"

এটি বরাদ্দ করে DECISION ফাংশনের আউটপুট “ইমেল” হিসেবে যদি ঠিকানায় “@” থাকে। এইভাবে ঠিকানাগুলি যেখানে “@” আছে সেগুলিকে ইমেল হিসাবে শ্রেণীবদ্ধ করা হয়েছে, এবং বাকিগুলিকে “ইমেল নয়” হিসাবে শ্রেণীবদ্ধ করা হয়েছে।

একই রকম রিডিংস

  • কিভাবে এক্সেলে VBA UCASE ফাংশন ব্যবহার করবেন (4 উদাহরণ)
  • Excel VBA এ MsgBox ফাংশন ব্যবহার করুন (একটি সম্পূর্ণ নির্দেশিকা)
  • এক্সেলে VBA SPLIT ফাংশন কীভাবে ব্যবহার করবেন (5 উদাহরণ)
  • এক্সেলে VBA-তে LCase ফাংশন ব্যবহার করুন (সহ 4 উদাহরণ)
  • এক্সেল VBA এ ফিক্স ফাংশন কীভাবে ব্যবহার করবেন (4 উদাহরণ)

2. VBA InStr ফাংশন ব্যবহার করে কিছু ​​ইমেল ঠিকানার এক্সটেনশন বের করা

এখানে, আমাদের কাছে কিছু গ্রাহকের কিছু ইমেল ঠিকানার তালিকা রয়েছে। এবার আমরা ইমেল ঠিকানার এক্সটেনশন বের করব যেমন তাদের gmail.com বা yahoo.com আছে কিনা।

এটি করতে, নীচের পদক্ষেপগুলি অনুসরণ করুন৷

পদক্ষেপগুলি:

  • পূর্ববর্তী পদ্ধতির মতো শুরু করতে, একটি নতুন VBA<2 খুলুন> মডিউল করুন এবং উইন্ডোতে নিম্নলিখিত কোডটি পেস্ট করুন।
5002

  • এছাড়া, আমরা একটি ফাংশন তৈরি করেছি যার নাম এক্সটেনশন । এটি যেকোনো ইমেল ঠিকানার এক্সটেনশন বের করে।
  • তাছাড়া, আমাদের কাছে থাকা ডেটা সেটটিতে এই ফাংশনটি প্রয়োগ করা যাক। প্রথমে C5 কক্ষে এই সূত্রটি লিখুন এবং তারপর ফিল হ্যান্ডেল -এ ডাবল ক্লিক করুন।
=EXTENSION(B5)

  • অবশেষে, আমরা দেখতে পাচ্ছি যে আমরা সফলভাবে সমস্ত ইমেলের এক্সটেনশন এক্সট্র্যাক্ট করেছি৷

🎓 কিভাবে কোড কাজ করে?

  • ফাংশন এক্সটেনশন(স্ট্রিং হিসাবে ইমেল)

এটি এক্সটেনশন নামে একটি নতুন ফাংশন তৈরি করে, যার সাথে একটি ইমেল নামে স্ট্রিং আর্গুমেন্ট।

  • > পূর্ণসংখ্যা হিসাবে অবস্থান কম করুন

এই অংশটি পজিশন নামে একটি পূর্ণসংখ্যা ভেরিয়েবল ঘোষণা করে .

  • পজিশন = InStr(1, ইমেইল, “@”, 0)

এটি <1 এর মান নির্ধারণ করে 1, ইমেল, “@” এবং 0 আর্গুমেন্ট সহ InStr ফাংশনের আউটপুট হিসাবে>পজিশন ভেরিয়েবল। সংক্ষেপে, এটি ইমেল এর অবস্থান নির্ধারণ করে যেখানে একটি “@” আছে।

  • এক্সটেনশন = ডান(ইমেল, (লেন (ইমেল) – অবস্থান))

এই অংশটি “@” চিহ্নের পরে অক্ষর হিসাবে EXTENSION ফাংশনের আউটপুট নির্ধারণ করে। এটি ইমেল এর প্রয়োজনীয় এক্সটেনশন।

3. VBA InStr ফাংশন ব্যবহার করে একটি নাম থেকে প্রথম বা শেষ নামটি বের করা

অবশেষে, আমরা একটি অনন্যভাবে ভিন্ন কাজ সম্পাদন করব। এবার আমাদের কয়েকজন কর্মচারীর নাম রয়েছেএকটি প্রতিষ্ঠান. এবং আমরা কর্মীদের প্রথম নাম বা শেষ নাম বের করার জন্য একটি ফাংশন তৈরি করার চেষ্টা করব৷

এটি করতে, নীচের ধাপগুলি অনুসরণ করুন৷

পদক্ষেপ:

  • প্রথমত, পদ্ধতি 1 এর অনুরূপ, VBA  উইন্ডোতে একটি নতুন মডিউলে নীচের কোডটি পেস্ট করুন৷
8131

  • এখানে, আমরা SHORTNAME নামে একটি ফাংশন তৈরি করেছি যেটি একটি নাম থেকে প্রথম নাম বা শেষ নাম বের করে। আমাদের ডেটা সেটে এই সূত্রটি প্রয়োগ করা যাক।
  • প্রথমে, প্রথম নামটি বের করতে, নিচের সূত্রটি সেলে লিখুন C5
=SHORTNAME(B5,-1)

  • শেষে, শেষ নামগুলি বের করতে, আমরা D5 এ নিম্নলিখিত সূত্রটি লিখি:
=SHORTNAME(B5,1)

  • পরে, যদি আমরা ফিল হ্যান্ডলার<2 দিয়ে বাকি ঘরগুলি স্বয়ংক্রিয়ভাবে পূরণ করি>, আমরা আমাদের কাঙ্খিত ফলাফল দেখতে পাব।

🎓 কোডটি কীভাবে কাজ করে?

  • ফাংশন SHORTNAME(Name as String, First_or_Last As Integer)

এটি SHORTNAME<2 নামে একটি নতুন ফাংশন তৈরি করে নাম নামের একটি স্ট্রিং আর্গুমেন্ট এবং প্রথম_অর_শেষ নামের একটি পূর্ণসংখ্যা আর্গুমেন্ট সহ।

  • ডিম ব্রেক অ্যাজ ইন্টিজার
  • <11

    এই অংশটি ব্রেক নামে একটি নতুন পূর্ণসংখ্যা ভেরিয়েবল ঘোষণা করে।

    • Break = InStr(1, Name, ” “, 0) <10

    এটি আর্গুমেন্টের সাথে InStr ফাংশনের আউটপুট হিসাবে Break ভেরিয়েবলের মান নির্ধারণ করে 1, নাম, “ ” এবং 0 । সংক্ষেপে, এটি নাম এর অবস্থান নির্ধারণ করে যেখানে একটি স্পেস (“ ”) আছে।

    • যদি First_or_Last = -1 তাহলে SHORTNAME = Left(Name, Break – 1)

    এই লাইনটি SHORTNAME ফাংশনের আউটপুট স্পেস -এর আগে অক্ষর হিসাবে নির্ধারণ করে, যদি First_or_Last আর্গুমেন্ট হয় -1। এটি প্রথম নাম৷

    • SHORTNAME = ডান(নাম, লেন(নাম) – বিরতি)

    এই অংশটি আউটপুট নির্ধারণ করে SHORTNAME স্পেস এর পরে অক্ষর হিসাবে কাজ করে, যদি First_or_Last আর্গুমেন্ট 1 হয়। এটি শেষ নাম।

    উপসংহার

    এইভাবে, আপনি InStr ফাংশন দিয়ে VBA কোড লিখতে পারেন যা একটি নির্দিষ্ট স্ট্রিং এর অবস্থান খুঁজে বের করে স্ট্রিং, এবং তারপর আপনি বিভিন্ন ব্যবহারের জন্য আপনার নিজস্ব ফাংশন তৈরি করতে পারেন। উপরন্তু, যদি আপনার কোন প্রশ্ন থাকে, আমাদের জিজ্ঞাসা করুন নির্দ্বিধায়৷

Hugh West একজন অত্যন্ত অভিজ্ঞ এক্সেল প্রশিক্ষক এবং শিল্পে 10 বছরেরও বেশি অভিজ্ঞতা সহ বিশ্লেষক। তিনি অ্যাকাউন্টিং এবং ফিন্যান্সে স্নাতক ডিগ্রি এবং ব্যবসায় প্রশাসনে স্নাতকোত্তর ডিগ্রি অর্জন করেছেন। Hugh শিক্ষাদানের জন্য একটি আবেগ আছে এবং একটি অনন্য শিক্ষণ পদ্ধতি তৈরি করেছে যা অনুসরণ করা এবং বোঝা সহজ। এক্সেল সম্পর্কে তার বিশেষজ্ঞ জ্ঞান বিশ্বব্যাপী হাজার হাজার ছাত্র এবং পেশাদারদের তাদের দক্ষতা উন্নত করতে এবং তাদের কর্মজীবনে শ্রেষ্ঠত্ব অর্জন করতে সাহায্য করেছে। তার ব্লগের মাধ্যমে, Hugh তার জ্ঞান বিশ্বের সাথে ভাগ করে নেয়, বিনামূল্যে এক্সেল টিউটোরিয়াল এবং অনলাইন প্রশিক্ষণ প্রদান করে ব্যক্তি এবং ব্যবসায়িকদের তাদের পূর্ণ সম্ভাবনায় পৌঁছাতে সহায়তা করার জন্য।