فهرست مطالب
اگر به دنبال سادهترین راهها برای یافتن زیر رشته با استفاده از VBA هستید، در جای مناسبی هستید. پس از گذراندن این مقاله، میتوانید موقعیت یک زیررشته را پیدا کنید یا با استفاده از این زیررشته دادهها را استخراج کنید یا قالب یک زیررشته را به راحتی تغییر دهید. بیایید وارد مقاله شویم.
دانلود Workbook
نمونه محتوای
9 روش برای یافتن زیر رشته با استفاده از VBA
در اینجا، من موارد زیر را دارم جدول داده ای که توسط آن روش های یافتن زیررشته در یک رشته با استفاده از VBA را نشان خواهم داد. من همچنین سعی خواهم کرد راه های یافتن زیر رشته را در یک رشته تصادفی نشان دهم.
من این کار را با استفاده از نسخه Microsoft Excel 365 انجام داده ام، شما می توانید با توجه به راحتی خود از هر نسخه دیگری استفاده کنید.
روش-1: یافتن زیر رشته در یک رشته با استفاده از VBA
اگر می خواهید زیر رشته مورد نظر خود را در یک رشته با استفاده از VBA پیدا کنید، می توانید از <استفاده کنید 11>عملکرد InStr در کد VBA.
Step-01 :
➤به Developer Tab>><بروید. 11>Visual Basic گزینه
سپس، Visual Basic Editor باز می شود.
➤به <11 بروید>درج Tab>> Module گزینه
پس از آن، Module ایجاد می شود.
Step-02 :
➤کد زیر را بنویسید
2779
اینجا، InStr(1, " من فکر می کنم بنابراین هستم، "think") موقعیت رشته فرعی یک رشته را برمی گرداند. 1 استموقعیت شروع، " من فکر می کنم پس هستم" رشته ای است که زیررشته مورد نظر خود را در آن پیدا خواهید کرد و "think" رشته فرعی است که می خواهید پیدا کنید. به طور پیشفرض به حروف کوچک و بزرگ حساس است، بنابراین مراقب حروف زیررشتهای باشید که میخواهید جستجو کنید.
➤ F5
را فشار دهید. نتیجه :
بعد از آن، جعبه پیام را دریافت خواهید کرد که حاوی موقعیت "think" رشته فرعی است.
روش-2: یافتن زیر رشته غیر حساس به حروف کوچک و بزرگ در یک رشته
اگر میخواهید رشته فرعی مورد نظر خود را بدون توجه به حروف با استفاده از VBA در یک رشته بیابید، این را دنبال کنید. روش.
Step-01 :
➤ Step-01 of Method-1
8847<دنبال کنید 0>در اینجا، vbTextCompare برای یافتن زیررشته غیرحساس به حروف بزرگ و کوچک استفاده می شود.
➤ F5
را فشار دهید. نتیجه :
سپس، جعبه پیام را دریافت خواهید کرد که حاوی موقعیت زیررشته "think" است.
شما می توانید با استفاده از کد زیر همین کار را انجام دهید.
3394
در اینجا، متن مقایسه گزینه رشته فرعی حساس به حروف بزرگ و کوچک را پیدا می کند.
➤ F5
نتیجه :
بعد، فشار دهید جعبه پیام حاوی موقعیت زیررشته "think" را دریافت خواهید کرد.
روش-3: استفاده از تابع InstrRev در VBA
در اینجا، من راه پیدا کردن یک زیررشته از انتهای یک را نشان خواهم داد.رشته.
Step-01 :
➤دنبال کنید Step-01 of Method-1
1359
InStrRev رشته فرعی را به جای سمت چپ از سمت راست پیدا می کند.
➤ F5
را فشار دهید.نتیجه :
سپس، جعبه پیام را دریافت خواهید کرد که حاوی موقعیت دومین "I" زیررشته از سمت راست.
روش-4: یافتن موقعیت زیر رشته در یک رشته در محدوده ای از داده ها
اگر می خواهید کاراکتر ویژه را پیدا کنید "@" در شناسه ایمیل ، سپس این روش را دنبال کنید. من اینجا ستون موقعیت را برای این منظور اضافه کردم.
Step-01 :
➤دنبال کنید Step-01 of Method-1
3111
یک تابع به نام FindSubstring ایجاد می کند (شما می توانید از هر نام دیگری استفاده کنید)
مقدار مرجع سلولی است که رشته را در خود دارد و به صورت محدوده اعلام می شود.
مرحله -02 :
➤خروجی را انتخاب کنید Cell E5
➤عملکرد زیر را تایپ کنید (ایجاد شده توسط VBA )
=FindSubstring(D5)
D5 سلولی است که شامل رشته است.
➤ را فشار دهید. ENTER
➤ Fill Handle Tool
نتیجه :
<را به پایین بکشید 0>بعد از آن، موقعیت های شخصیت ویژه " @"در شناسه ایمیلرا دریافت خواهید کرد.
خواندنی مشابه:
- چگونه پیدا کنیمرشته در یک سلول با استفاده از VBA در اکسل (2 روش)
- FindNext با استفاده از VBA در اکسل (2 مثال)
- چگونه رشته را با VBA در اکسل (8 مثال)
- VBA آخرین ردیف را در اکسل بیابد (5 روش)
روش-5: بررسی یک زیر رشته خاص در یک رشته در محدوده داده
فرض کنید، میخواهید بسته به ستون نتایج، Pass یا Fail to مطابق را به نام دانشآموزان بنویسید. که در آن Pass یا Fail در یک پرانتز نوشته شده است. برای یافتن این زیررشته در ستون نتیجه و نوشتن آن در ستون عبور یا شکست از این روش پیروی کنید.
Step-01 :
➤ Step-01 of Method-1
9120
در اینجا، محدوده سلولی را دنبال کنید 11>C5:C10 که ستون نتیجه
InStr(cell.value، "Pass") > 0 شرایطی است که در آن عدد بزرگتر از صفر باشد (زمانی که سلول حاوی «Pass» باشد) سپس خط زیر ادامه مییابد و خروجی سلول مجاور را به صورت Passed<12 میدهد>.
اگر شرط نادرست شود به این معنی است که یک سلول حاوی «Pass» نیست، خط زیر Else اجرا میشود و مقدار خروجی را در سلول مجاور به عنوان ناموفق .
این حلقه برای هر سلول ادامه خواهد داشت.
➤ F5 <را فشار دهید. 1>
نتیجه :
سپس، خروجی های زیر را در Pass or Fail دریافت خواهید کرد ستون.
روش-6: بررسی یک زیررشته خاص در یک رشته و استخراج داده
من راه پیدا کردن دانش آموزان نامگذاری شده را نشان خواهم داد. Michael در ستون Student Name و داده های مربوطه آنها را با استفاده از VBA در این روش استخراج کنید.
Step-01 :
➤ Step-01 of Method-1
5822
در اینجا، من از Step-01 استفاده کنید 11>B100 بهعنوان محدوده صفحه فعال ، اما میتوانید از هر محدوده با توجه به استفاده خود استفاده کنید.
InStr(1, Range("B" & i), "Michael") > 0
شرط بررسی اینکه آیا سلول در ستون B شامل Michael
Range("E" & icount & ":G" & icount)
محدوده ای است که در آن داده های خروجی خود را می خواهید و Range("B" & i & ":D" & i).value
مقادیر را می دهد از ستون های B تا D .
➤ F5
<11 را فشار دهید>نتیجه :
پس از آن، داده های استخراج شده زیر را برای دانش آموزانی با نام Michael دریافت خواهید کرد.
روش-7: جستجوی زیر رشته برای Word
اگر می خواهید زیررشته را به عنوان کلمه پیدا کنید، آن را فولو کنید این روش را کم کنید.
Step-01 :
➤ Step-01 of Method-1
را دنبال کنید5543
بررسی خواهد کرد که آیا رشته حاوی است و سپس موقعیت آن داده می شود
➤ F5 را فشار دهید
نتیجه :
بعد از آن، کادر پیام زیر را دریافت خواهید کرد که کلمه یافت شده در موقعیت را نشان می دهد:6 (موقعیت is ).
می توانید تست کنیداین کد را برای کلمه ای که در رشته نیست خارج کنید.
➤کد زیر را تایپ کنید
7108
➤ F5 <را فشار دهید 1>
نتیجه :
بعد از آن، کادر پیام زیر را دریافت خواهید کرد که کلمه یافت نشد را نشان می دهد.
روش-8: با استفاده از تابع Instr و LEFT
در اینجا، روش یافتن موقعیت یک رشته فرعی در یک رشته و استخراج متون قبل از این زیر رشته را با استفاده از توضیح خواهم داد. VBA و عملکرد LEFT .
Step-01 :
➤دنبال کنید Step-01 از روش-1
4098
j = InStr(txt, "is")
موقعیت رشته فرعی است است و Left(txt, j - 1)
رشته های فرعی را قبل از <11 استخراج می کند>is .
➤ F5
نتیجه :
را فشار دهید پس از آن، کادر پیغام زیر را دریافت خواهید کرد که در اینجا (رشته فرعی قبل از is ) را نشان می دهد.
روش-9: Bolding یک زیر رشته معین در یک رشته
می توانید با پیروی از این روش، نمرات قبل از پرانتز در ستون نتیجه را پررنگ کنید d.
Step-01 :
➤دنبال کنید Step-01 از روش- 1
8753
txt = InStr(1, Cell, "(")
موقعیت اولین براکت را برمی گرداند و Cell.Characters(1, txt - 1).Font.Bold
رشته فرعی را قبل از اولین براکت Bold می سازد.
Step-02 :
➤ ستون نتیجه را انتخاب کنید
➤برو به برنامهنویس Tab>> ماکروها گزینه
سپس، یک ماکرو جادوگر ظاهر خواهد شد.
➤ Boldingsubstring (نام کد VBA) و سپس Run را انتخاب کنید.
نتیجه :
پس از آن، نمرات در نتیجه ستون پررنگ خواهد شد.
بخش تمرین
برای انجام تمرین توسط خودتان، بخش تمرین را مانند زیر در برگه ای به نام تمرین ارائه کرده ایم. لطفاً خودتان این کار را انجام دهید.
نتیجهگیری
در این مقاله سعی کردم سادهترین راهها برای یافتن زیررشته با استفاده از VBA را توضیح دهم. در اکسل به طور موثر امیدوارم برای شما مفید باشد. اگر پیشنهاد یا سوالی دارید، در صورت تمایل آنها را با ما در میان بگذارید.