نحوه استفاده از تابع Find در VBA (6 مثال)

  • این را به اشتراک بگذارید
Hugh West

یکی از مهمترین و پرکاربردترین توابعی که ما در برنامه ویژوال بیسیک (VBA) استفاده می کنیم، تابع Find است. در این مقاله، من به شما نشان خواهم داد که چگونه می توانید از تابع FIND اکسل با مثال ها و تصاویر مناسب استفاده کنید.

دانلود کتاب تمرین

پیدا کردن تابع در VBA در Excel.xlsm

6 مثال سریع برای استفاده از تابع FIND در VBA

در اینجا ما آورده ایم مجموعه داده ای با نام کتاب، نویسندگان و قیمت برخی از کتاب های کتابفروشی به نام کتابفروشی مارتین دریافت کردم.

امروز هدف ما این است که انواع مختلفی از کاربردهای Find function VBA را از این مجموعه داده مشاهده کنیم.

1. از تابع Find در VBA بدون پارامتر استفاده کنید

شما می توانید از عملکرد Find VBA بدون پارامتر استفاده کنید.

سپس یک مقدار خاص را در محدوده ای از سلول ها جستجو می کند و اولین مطابقی را که پیدا می کند برمی گرداند.

بیایید نام "P. ب. Shelly" در ستون Author ( C4:C13 ).

خط دارای تابع Find خواهد بود:

Set cell = Range("C4:C17").Find("P. B. Shelly")

کد VBA کامل به صورت زیر خواهد بود:

کد VBA:

6947

خروجی:

یک تولید می کند ماکرو به نام یافتن . اگر ماکرو را اجرا کنید، $C$6 ، اولین آدرس سلول با نام P را برمی گرداند. ب. Shelly .

بیشتر بخوانید: در یک محدوده با VBA درExcel: شامل تطابق دقیق و جزئی

2. تابع Find را در VBA با پارامتر After (برای شروع جستجو از یک سلول خاص) اعمال کنید

شما می توانید از پارامتر After با تابع Find استفاده کنید. در VBA . سپس شروع به جستجوی یک مقدار از زیر یک سلول در یک محدوده می کند.

به عنوان مثال، اجازه دهید شروع به جستجو برای نام "P. ب. Shelly" از سلول زیر C6 .

خط کد خواهد بود:

Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))

و کد VBA کامل خواهد بود:

کد VBA:

3850

خروجی:

$C$13 برمی‌گردد زیرا از سلول زیر شروع به جستجو می‌کند C6 ، این از سلول C7 است. بنابراین P می شود. ب. Shelly در سلول C13 ابتدا.

بیشتر بخوانید: نحوه یافتن رشته در یک سلول با استفاده از VBA در اکسل

3. تابع Find را در VBA با Wrapping در اطراف پارامتر After (برای جستجوی یک مقدار به صورت دایره ای) اجرا کنید

پارامتر After با تابع Find یک مقدار را به صورت دایره ای جستجو می کند

یعنی جستجو را از زیر یک سلول در محدوده شروع می کند، جستجو را در محدوده تمام می کند و سپس دوباره از بالای محدوده شروع می کند.

0>به عنوان مثال، بیایید جستجوی نام "جان کیتس" را از سلول زیر C8 با استفاده از پارامتر After شروع کنیم.

خط کد خواهد بود:

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

و کد VBA کامل خواهد بود:

کد VBA:

7439

خروجی:

$C$7 را برمی‌گرداند زیرا از زیر سلول C8 شروع به جستجو می‌کند، این از سلول C9 .

تا سلول C13 چیزی پیدا نمی‌کند، بنابراین دوباره از سلول C4 شروع می‌شود و یکی را در سلول پیدا می‌کند. C7 .

خواندنهای مشابه:

  • چگونه رشته را با VBA پیدا کنیم در اکسل (8 مثال)
  • پیدا کردن تطابق دقیق با استفاده از VBA در اکسل (5 روش)
  • نحوه یافتن و جایگزینی با استفاده از VBA (11) راهها)

4. از تابع Find در VBA با پارامتر LookAt (برای تطابق دقیق یا جزئی) استفاده کنید

شما می توانید از تابع Find در VBA با <1 استفاده کنید>پارامتر LookAt .

از LookAt = xlWhole برای تطبیق دقیق و LookAt=xlPart برای جزئی استفاده کنید مطابقت دارد.

به عنوان مثال، بیایید سعی کنیم در ستون نام کتاب کتابی با نام «قصه» وجود داشته باشد ( B4:B13 ).

اگر از xlWhole در خط کد استفاده کنیم:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

خروجی یک خطا نشان می دهد زیرا هیچ تطابقی دقیق را پیدا نمی کند.

اما اگر از:

<7 استفاده می کنید> Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

سپس باز می گردد $B$9 ، زیرا کتابی با نام "Ode" در آن در سلول وجود دارد. B7 ، قصیده بلبل.

بنابراین کد کامل برای تطابق جزئی این است:

کد VBA:

1565

5. عملکرد Find را در VBA با پارامتر SearchDirection (برای مشخص کردن جهت جستجو) در VBA اجرا کنید

همچنین می توانید از تابع Find در VBA با پارامتر SearchDirection .

از SearchDirection = xlNext برای جستجو از بالا به پایین استفاده کنید.

و SearchDirection = xlPrevious برای جستجو از پایین به بالا .

به عنوان مثال، بیایید سعی کنیم نویسنده Elif Shafak را در ستون Author پیدا کنیم. ( C4:C13 ).

اگر از xlNext در خط کد استفاده کنیم:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

سپس $C$5 برمی گردد.

اما اگر از:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) استفاده کنید

سپس باز می گردد $C$11 .

بنابراین کد کامل برای جستجو از پایین به بالا این است:

کد VBA:

3913

6. یافتن تابع در VBA با پارامتر MatchCase (برای مطابقت حساس به حروف بزرگ یا غیر حساس)

در نهایت، می‌توانید از تابع Find با پارامتر MatchCase استفاده کنید.

از MatchCase = True برای حساس به حروف کوچک مطابق ، و MatchCase=False برای استفاده کنید تطابق بدون حساس به بزرگی و کوچکی.

برای مثال، بیایید سعی کنیم کتاب "مادر" را در ستون نام کتاب پیدا کنیم ( B4:B13 ).

اگر از True در خط کد استفاده کنیم:

Set cell = Range("B4:B13").Find("mother", MatchCase:=True)

خروجی خطا نشان می دهد زیرا این خطا را نشان می دهد. هیچی پیدا نکنمطابقت دارد.

اما اگر از:

Set cell = Range("B4:B13").Find("mother", MatchCase:=False)

سپس باز می گردد $ B$9 زیرا کتابی به نام "Mother" در سلول B8 وجود دارد.

بنابراین کد کامل برای تطابق بدون حساس به حروف کوچک این است:

کد VBA:

8537

نتیجه گیری

با استفاده از این روش ها می توانید از Find Function در برنامه Visual Basic استفاده کنید. آیا هیچ سوالی دارید؟ از ما بپرسید.

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