تابع FIND در VBA: چگونه از آن استفاده کنیم؟

می خواهم نحوه استفاده را یاد بگیرم تابع FIND در VBA🇧🇷 پس شما در جای درستی هستید!

چه کسی گزینه SEARCH را در اکسل نمی داند؟ اگر مدتی با اکسل کار می‌کنید، احتمالاً از تابع SEARCH یا کلید میانبر محبوب Ctrl + L برای یافتن کلمه یا محتوایی که می‌خواهید در کل کاربرگ خود جستجو کنید، استفاده کرده‌اید. مانند کل کتاب کار

همچنین در VBA تابعی به نام FIND داریم که می تواند به ما کمک کند تا مقدار مورد نظر خود را پیدا کنیم.

جزئیات زیر را دنبال کنید تا از طریق مثال های عملی با این ویژگی بیشتر آشنا شوید.

تابع FIND در VBA چگونه کار می کند؟

تابع Excel VBA FIND یک مقدار خاص را در یک محدوده خاص جستجو می کند. به دنبال اولین رخداد آن مقدار می گردد و در صورت یافتن تابع، سلولی را که حاوی آن است برمی گرداند. با این حال، اگر مطابقت پیدا نشود، تابع چیزی را برمی گرداند. تابع VBA FIND می تواند تطابق دقیق یا جزئی را برگرداند.

به عنوان مثال، کد زیر متن " را جستجو می کند.سن پابلو» در فاصله زمانی A1: A10 en «کاربرگ 1🇺🇸

با برگه ("Sheet1"). محدوده ("A1:A10")
تنظیم Rng = .Find(What:="São Paulo")

هدف از استفاده از تابع FIND در VBA یافتن مقدار مورد نظر در یک مجموعه داده معین است. با کد VBA می توانید کار یافتن مقادیر در اکسل را خودکار کنید.

VBA FIND نحو تابع

سینتکس تابع VBA FIND به صورت زیر اعلام می شود:

express.Find (What، After، LookIn، LookAt، Search Order، SearchDirection، MatchCase، MatchByte، SearchFormat)

نام Dónde:

اصطلاح: شی محدوده است که قبل از تابع FIND در کد VBA قرار دارد. محدوده جستجو می تواند یک یا چند ردیف، ستون یا کل صفحه گسترده باشد. تابع VBA FIND آرگومان های زیر را می پذیرد:

  • فونز: این ارزشی است که باید به دنبال آن باشید. این می تواند عددی، متنی یا هر نوع داده اکسل دیگری باشد. این آرگومان همان گزینه Find از «پیدا کردن و جایگزین کردن” از اکسل.
  • بعد از: سلولی را که جستجو از آن شروع می شود را نشان می دهد. به عنوان یک مرجع تک سلولی وارد می شود. اگر این آرگومان حذف شود، جستجو پس از سلول در گوشه سمت چپ بالای محدوده جستجوی مشخص شده آغاز می شود.
  • نگاه کن: این مکان (یا داده) است که مقدار باید در آن جستجو شود. این می تواند یک نظر (xlComments)، یک فرمول (xlFormulas) یا یک مقدار (xlValues) باشد. مقدار پیش فرض این آرگومان xlFormulas است. همچنین این آرگومان همان گزینه Find از «پیدا کردن و جایگزین کردن” از اکسل.
  • نگاه کنید: این آرگومان تصمیم می‌گیرد که آیا کل محتوای سلول (تطابق دقیق) یا بخشی از محتوای سلول (تطابق جزئی) مطابقت داشته باشد. ثابت ها به ترتیب xlWhole و xlPart برای تطابق دقیق و جزئی هستند. مقدار پیش فرض این آرگومان xlPart است.
  • ترتیب جستجو: این استدلال ترتیب جستجو را نشان می دهد. می توانید تعیین کنید که جستجو در ردیف (xlByRows) یا ستون (xlByColumns) باشد. مقدار پیش فرض این آرگومان xlByRows است. همچنین این آرگومان همان گزینه Find از «پیدا کردن و جایگزین کردن” از اکسل.
  • آدرس جستجو: نشان دهنده آدرسی است که جستجو در آن انجام خواهد شد. می توانید با ثابت xlNext به پایین یا به سلول بعدی جستجو کنید. همچنین، می‌توانید به عقب (بالا) یا در سلول قبلی با ثابت xlPrevious جستجو کنید. مقدار پیش فرض این آرگومان xlNext است.
  • مورد مسابقه: این آرگومان تعیین می کند که آیا جستجو باید به حروف کوچک و بزرگ حساس باشد یا خیر. اگر جستجو به حروف بزرگ و کوچک حساس باشد، این آرگومان به عنوان درست (TRUE) مشخص می شود، در غیر این صورت نادرست (FALSE) است. مقدار پیش فرض این آرگومان False است.
  • MatchByte: اگر کسی پشتیبانی زبان دو بایتی را نصب کرده یا انتخاب کرده باشد، باید از این آرگومان استفاده شود. اگر قرار است کاراکترهای دو بایتی با کاراکترهای دو بایتی مطابقت داشته باشند، باید به عنوان true مشخص شود. اگر قرار است نویسه‌های دو بایتی با معادل‌های تک بایتی خود مطابقت داده شوند، باید به‌عنوان نادرست مشخص شود.
  • فرمت جستجو: نشان می دهد که آیا مقدار مورد جستجو باید در قالب خاصی (مانند پررنگ یا مورب) باشد یا خیر. اگر مقدار جستجو باید از یک تکنیک قالب بندی پیروی کند، این آرگومان به عنوان true و در غیر این صورت نادرست مشخص می شود. مقدار پیش فرض این آرگومان false (FALSE) است.

فقط استدلال چی لازم است. آرگومان های دیگر اختیاری هستند.

تابع FIND یکی از نتایج زیر را برمی گرداند:

  • اگر مطابقت یافت شود، تابع اولین سلولی را که مقدار در آن یافت می شود، برمی گرداند.
  • اگر مطابقت پیدا نشد، تابع چیزی را برمی گرداند. این به این دلیل است که شی تابع روی هیچ تنظیم شده است.

همچنین، اگر مطابقت پیدا نشد، یک پیام سفارشی از طریق مشخص شده است عملکرد جعبه پیام را می توان برگرداند (نمونه های کد زیر را ببینید).

توجه داشته باشید 1: جستجو پس از سلول مشخص شده در آرگومان شروع می شود. پس از و تا آخرین سلول در محدوده جستجو ادامه می یابد. اگر مقدار تا آخرین سلول پیدا نشد، جستجو دوباره از اولین سلول در محدوده جستجو تا سلول مشخص شده در آرگومان شروع می شود. پس از🇺🇸

بنابراین، سلول مشخص شده در آرگومان پس از در پایان فرآیند جستجو جستجو می شود. برای جزئیات بیشتر در مورد استفاده از استدلال پس ازمثال دوم را در این مقاله ببینید.

توجه داشته باشید 2: هر بار که از تابع VBA FIND استفاده می شود، نگاه کن🇺🇸 نگاه کن🇺🇸 ترتیب جستجو y MatchByte ذخیره می شوند.بنابراین اگر دفعه بعد که از تابع استفاده می شود این مقادیر حذف شوند، اکسل از مقادیر ذخیره شده قبلی استفاده خواهد کرد. بنابراین، توصیه می شود هر زمان که جستجو با استفاده از تابع VBA FIND انجام می شود، آرگومان های ارائه شده را به صراحت اعلام کنید.

چگونه از تابع FIND در Excel VBA استفاده کنیم؟

برای اینکه بتوانید استفاده از تابع FIND در VBA را درک کنید، چند مثال عملی را در زیر جدا کرده ایم.

مثال 1: انتخاب سلول با اولین وقوع مقدار جستجو

در این مثال اول، فرض کنید فهرستی دارید که شامل نام‌هایی است که در تصویر زیر نشان داده شده است، و می‌خواهید سلولی را که حاوی نام است، مرور کرده و انتخاب کنید. پدرو🇺🇸

از آنجا، این مراحل را دنبال کنید:

1. به راهنما دسترسی داشته باشید توسعه دهنده 🇺🇸 ویژوال بیسیک🇧🇷 (اگر تب Developer را در اکسل خود فعال ندارید، اینجا را بررسی کنید گام به گام).

راهنمای توسعه دهنده

دو در صفحه VBA، کاربرگ مورد نظر را از منوی سمت چپ انتخاب کنید. در این مثال، ما را انتخاب می کنیم کاربرگ 1 که کاربرگ حاوی لیست اسامی است.

3. پس از انتخاب کاربرگ مورد نظر، در قسمت سمت راست کد زیر را وارد کنید:

سلولی را انتخاب کنید که اولین بار مقدار جستجو شده است

Sub LocateName()
محدوده ("A1:A10"). Find(What:="Peter"). انتخاب کنید
پایان دادن به زیر
  • در کد بالا توجه کنید که ما محدوده مورد نظر خود را ذکر کردیم (A1: A10🇺🇸
  • پس از ذکر محدوده، نقطه (.) قرار داده و تایپ کنید پیدا کردن🇺🇸
  • اولین استدلال ما چیزی است که به دنبال آن هستیم. برای برجسته کردن آرگومان، می‌توانیم آرگومان را پاس کنیم چی:=این برای تشخیص اینکه به کدام پارامتر اشاره می کنیم مفید خواهد بود.
  • بخش پایانی بعد از یافتن کلمه ای است که می خواهیم انجام دهیم. ما باید کلمه را انتخاب کنیم، بنابراین آرگومان را به عنوان ارسال کنید انتخاب کنید🇺🇸
  • سپس با استفاده از کلید این کد را اجرا کنید F5 یا به صورت دستی همانطور که در تصویر زیر نشان داده شده است تا اولین سلول حاوی نام را انتخاب کنید پدرو🇺🇸

در VBA قرار بگیرید

مثال 2: سلولی را انتخاب کنید که دومین مقدار جستجو را دارد

در این مثال دوم، توجه داشته باشید که تصویر زیر شامل نام‌هایی در محدوده A1:A10 است. توجه داشته باشید که نام "پدرو” دو بار در ستون A ظاهر می شود.

سلولی را که مورد دوم است انتخاب کنید

در این صورت می خواهیم جستجو کرده و مورد را انتخاب کنیم وقوع دوم نام "پیتر" در ستون A (یعنی سلول A7). برای این کار از کد زیر استفاده می کنیم:

وقوع دوم VBA را پیدا کنید

Sub LocateName()
Range("A1:A10").Find(What:="Peter", After:=Range("A2")).انتخاب کنید
پایان دادن به زیر

در کد بالا توجه کنید که جستجو بعد از سلول A2 شروع می‌شود و تا آخرین خانه در ستون A ادامه می‌یابد. این به این دلیل است که محدوده جستجو به عنوان ستون A مشخص شده است (A1:A10).

بنابراین، از آنجایی که جستجو در سلول A3 شروع می شود، مقدار "پدرو” در سلول است A7 می دهد"صفحه گسترده 2🇧🇷 بنابراین سلول A7 هنگام اجرای کد توسط تابع FIND انتخاب می شود.

اگر نام «پدرو” تا آخرین خانه در ستون A در سلول A3 یافت نشده بود، جستجو دوباره از سلول A1 شروع می شد و این بار در سلول A2 پایان می یافت. بنابراین، سلول مشخص شده در آرگومان "پس از” درست در پایان فرآیند جستجو جستجو می شود.

مثال 3: متن را با مشخص کردن برخی از کاراکترهای آن بیابید

برای جستجوی متن تنها با مشخص کردن بخشی از آن، آرگومان را وارد کنید نگاه کن مانند xlPart یا این استدلال را حذف کنید. به طور پیش فرض، تابع FIND کاراکترهای موجود در مقدار جستجو را با کل رشته مطابقت می دهد. سپس سلولی را که شامل کل این رشته است برمی گرداند.

به مثال زیر نگاه کنید:

Sub LocateName()
Range("A1:A10").Find(What:="Ped", LookAt:=xlPart).انتخاب کنید
پایان دادن به زیر

این کد به دنبال کاراکترهای "زنبیل” در محدوده A1:A25 از “Sheet3”. سلول حاوی مقدار برگردانده می شود که نامگذاری شده است مکاتبات جزئی🇧🇷 بنابراین، صرف نظر از اینکه آیا کاراکترهای مقدار جستجو در ابتدا، وسط یا انتهای رشته قرار می گیرند، Excel VBA مطابقت را برمی گرداند.

سخنان: ثابت xlPart می توان آن را از کد حذف کرد زیرا مقدار پیش فرض تابع FIND است. اما اگر این آرگومان مشخص شده است، مطمئن شوید که در دو گیومه قرار نگرفته است.

مثال 4: یافتن متن در یک نظر

همچنین می توانید از تابع VBA FIND برای یافتن متن در یک نظر سلولی در اکسل استفاده کنید.

برای درک بهتر، به مثال زیر نگاهی بیندازید که در آن یک کاربرگ داریم که شامل سه خانه با نظرات (که با مثلث های قرمز مشخص شده است) است. از اینجا می خواهیم متن "کمیسیون پرداخت شده” واقع در یکی از نظرات. در این صورت از کد زیر استفاده می کنیم:

Sub LocateComment()
Range("A1:B10").Find(What:="Commission Pays", LookIn:=xlComments).انتخاب کنید
پایان دادن به زیر

متن را در نظر پیدا کنید

در نتیجه، اکسل تنها سلولی را انتخاب می کند که حاوی نظری است که متن آن در کد ما مشخص شده است.

مثال 5: رسیدگی به خطا در تابع FIND در VBA

در صورتی که متن مورد نظر ما در محدوده داده شده نباشد، VBA مانند شکل زیر خطایی را برمی‌گرداند:

91 خطا

برای جلوگیری از این خطا می توانیم از کدی مانند شکل زیر استفاده کنیم:

Sub LocateName()
نتیجه کم نور به عنوان متغیر

خطا در رزومه کاری بعدی
محدوده ("A1:A10"). Find(What:="Cristina"). انتخاب کنید
در خطای GoTo 0

نتیجه = ActiveCell.Value

اگر نتیجه = "" سپس
MsgBox "مقداری که به دنبال آن هستید در محدوده ارائه شده موجود نیست!"
خروج از زیر
اگر پایان

پایان دادن به زیر

در کد بالا توجه کنید که اگر VBA مقدار را پیدا کند، مقدار یافت شده را نمایش می دهد، در غیر این صورت پیام را به صورت " نمایش می دهد.مقداری که به دنبال آن هستید در محدوده داده شده موجود نیست🇺🇸

برای راهنمایی بیشتر در مورد نحوه رفع خطاهای VBA، مقاله را بررسی کنید: خطاهای اکسل VBA: همه چیزهایی که باید بدانید!

جزئیات برای به خاطر سپردن

  • تابع FIND بخشی از ویژگی RANGE است و شما باید پس از انتخاب محدوده فقط از FIND استفاده کنید.
  • در تابع FIND، اولین آرگومان (چی)، به علاوه هر چیز دیگری اختیاری است.
  • اگر مقدار را بعد از یک سلول خاص پیدا کردید، می توانید سلول را در پارامتر ذکر کنید پس از از نحو جستجو

صفحه گسترده را از اینجا دانلود کنید شامل نمونه های ارائه شده در این آموزش است.

همچنین نکات اکسل زیر را بررسی کنید:

بنابراین نظر شما در مورد تابع FIND در VBA چیست؟ اگر سوالی دارید، نظر خود را در زیر بنویسید. همچنین نکات بیشتر اکسل و VBA را در وب سایت ما بررسی کنید!

تامی بنکس
ما خوشحال خواهیم شد که نظر شما را بشنویم

پاسخ دهید

تکنوبریک | پیشنهادات و نظرات
لوگو
ثبت نام را در تنظیمات فعال کنید - به طور کلی
سبد خرید