فهرست مطالب
اگر به دنبال ساده ترین راه ها برای یافتن تطابق دقیق با استفاده از VBA هستید، این مقاله برای شما مفید خواهد بود. بنابراین، بیایید با مقاله شروع کنیم و با روش های یافتن یک تطابق دقیق آشنا شویم.
دانلود Workbook
VBA Find Exact Match.xlsm
5 راه برای یافتن تطابق دقیق با استفاده از VBA
من از جدول زیر استفاده کرده ام که سوابق نتایج برخی از دانش آموزان را دارد. روش های مختلفی را برای یافتن تطابق دقیق با استفاده از این جدول با کمک VBA توضیح خواهم داد.
برای این منظور از نسخه Microsoft Excel 365 استفاده کرده ام، شما می توانید از هر نسخه دیگری استفاده کنید. با توجه به راحتی شما.
روش-1: یافتن تطابق دقیق در محدوده ای از سلول ها
اگر می خواهید مطابقت دقیق رشته ای مانند نام یک دانش آموز و سپس موقعیت سلولی این دانش آموز را پیدا کنید، سپس می توانید با دنبال کردن این روش این کار را انجام دهید. دانش آموزی به نام "Joseph Micahel" .
Step-01 :
➤به Developer Tab>> Visual Basic گزینه
سپس، Visual Basic Editor باز میشود.
➤رفتن به درج Tab>> Module گزینه
پس از آن، Module ایجاد می شود.
Step-02 :
➤کد زیر را بنویسید
5918
اینجا، "تطابق دقیق" نام برگه است و "B5:B10" نام صفحه استمحدوده نام دانش آموزان، و "جوزف مایکل" نام دانش آموز است که باید کشف شود.
rng به عنوان یک شی محدوده اعلام می شود و str به عنوان یک متغیر رشته ای برای ذخیره آدرس مورد جستجو شده.
گزاره IF آدرس مورد را به متغیر str اختصاص می دهد.
➤ فشار دهید F5
نتیجه :
بعد از آن، شما دریافت خواهید کرد زیر جعبه پیام حاوی موقعیت سلولی دانش آموز به نام "جوزف مایکل" .
بیشتر بخوانید: در یک محدوده با VBA در اکسل پیدا کنید: شامل تطابق دقیق و جزئی
روش-2: یافتن تطابق دقیق و جایگزینی آن با استفاده از VBA
من نشان خواهم داد روشی برای یافتن نام دانش آموز مشخص شده و سپس جایگزینی آن با نام دیگری زیرا به اشتباه این نام در اینجا نوشته شده است. با دنبال کردن این روش میتوانید رشته مورد نظر خود را پیدا کرده و جایگزین کنید .
Step-01 :
➤ Step-01 of Method-1
4268
در اینجا، "find&replace" نام برگه است و را دنبال کنید "B5:B10" دامنه اسامی دانش آموزان است، و "Donald Paul" نام دانش آموز است که باید کشف شود و سپس "هنری جکسون" خواهد شد به جای نام قبلی، نام دانش آموز باشد.
WITH از تکرار قطعه کد در هر عبارت جلوگیری می کند.
IF بیانیه را اختصاص خواهد دادآدرس مورد به متغیر str و حلقه DO جایگزین همه موارد جستجوی کلمه جستجو می شود.
➤ <1 را فشار دهید>F5
نتیجه :
پس از آن، نام دانش آموز جدید را به عنوان "هنری جکسون" دریافت خواهید کرد .
روش-3: یافتن تطابق دقیق و حساس به حروف
اگر می خواهید مطابقت حساس به حروف بزرگ پیدا کنید، این روش را دنبال کنید. در اینجا من دو نام شبیه به هم دارم اما در مورد تفاوت وجود دارد و بسته به مورد نام آخرین دانش آموز را جایگزین می کنم.
مرحله -01 :
➤ Step-01 از روش-1
2647
در اینجا، "حساس به حروف بزرگ" را دنبال کنید نام برگه است و "B5:B10" محدوده نام دانش آموزان است، و "Donald Paul" نام دانش آموزی است که باید کشف شود، و سپس "هنری جکسون" به جای نام قبلی، نام دانش آموز خواهد بود.
با عبارت از تکرار قطعه کد در هر عبارت جلوگیری می شود.
گزاره IF آدرس مورد را به متغیر str اختصاص میدهد و حلقه DO جایگزین همه موارد جستجوی کلمه جستجو میشود.<3
➤ F5
نتیجه را فشار دهید:
اکنون، با توجه به مورد، نام دانش آموز به "هنری جکسون" تغییر خواهد کرد. نحوه یافتن رشته در سلول با استفاده از VBA در اکسل (2 روش)
روش-4: استفاده از تابع InStr
فرض کنید، میخواهید Pass یا Fail to مطابقت ندارد را با نام دانشآموزان مطابق با ستون نتیجه مطابقت دهید که در آن Pass یا Fail نوشته شده است. برای یافتن این رشته در ستون نتیجه و نوشتن "موفق شد" در ستون وضعیت برای دانش آموزانی که امتحان را پس داده اند، می توانید از <1 استفاده کنید>عملکرد InStr .
Step-01 :
➤ Step-01 را دنبال کنید از روش-1
7870
در اینجا، محدوده سلولی C5:C10 که ستون نتیجه است
InStr(مقدار سلول، «گذر») > 0 شرایطی است که در آن عدد بزرگتر از صفر باشد (زمانی که سلول حاوی «Pass» باشد) سپس خط زیر ادامه مییابد و خروجی سلول مجاور را به صورت گذر <2 میدهد>.
اگر شرط نادرست شود به این معنی است که یک سلول حاوی «Pass» نیست، خط زیر ELSE اجرا شده و مقدار خروجی را در سلول مجاور به صورت Blank .
این حلقه برای هر سلول ادامه خواهد داشت.
➤ F5 <را فشار دهید 3>
نتیجه :
سپس، وضعیت "موفق شد" را برای دانش آموزانی که قبول شده اند دریافت خواهید کرد.
روش-5: یافتن تطابق دقیق و استخراج داده
اگر می خواهید استخراج کنیدداده های مربوط به دانش آموزی به نام "Michael James" سپس می توانید این روش را دنبال کنید.
Step-01 :
➤ Step-01 از روش-1
1160
در اینجا، من از B100 به عنوان Active استفاده کرده ام محدوده برگه (شما می توانید از هر محدوده ای با توجه به استفاده خود استفاده کنید).
InStr(1, Range("B" & i)، "Michael James") > 0 شرط بررسی اینکه آیا سلول در ستون B شامل مایکل جیمز است یا نه.
Range("E " & icount & ":G" & icount) محدوده ای است که در آن داده های خروجی خود را می خواهید و محدوده ("B" & i & ":D" و amp; i). مقادیر ستون B تا D را می دهد.
➤ F5 را فشار دهید
نتیجه :
پس از آن، داده های استخراج شده زیر را برای دانش آموزانی که نام Michael James دارند، دریافت خواهید کرد.
بخش تمرین
برای انجام تمرین توسط خودتان، یک بخش تمرین مانند زیر در برگه ای به نام تمرین ارائه کرده ایم. . لطفاً خودتان این کار را انجام دهید.
نتیجهگیری
در این مقاله سعی کردم سادهترین راهها برای یافتن یک تطابق دقیق با استفاده از VBA در اکسل به طور موثر. امیدوارم برای شما مفید واقع شود. اگر پیشنهاد یا سوالی دارید، آن را با ما در میان بگذارید.