Excelda VBA bilan stringni qanday topish mumkin (8 ta misol)

  • Buni Baham Ko'Ring
Hugh West

VBA ni amalga oshirish Excelda har qanday operatsiyani bajarishning eng samarali, eng tez va xavfsiz usuli hisoblanadi. Ushbu maqolada biz Excelda VBA yordamida boshqa berilgan satrda ma'lum qatorlarni qanday topishni ko'rsatamiz.

Mashq shablonini yuklab oling

Siz bepul amaliyot Excel shablonini bu yerdan yuklab olishingiz mumkin.

VBA uchun String.xlsm

InStr Function

Microsoft Excel-da berilgan satrdagi ma'lum satrlarning o'rnini topish uchun InStr Function deb nomlangan o'rnatilgan funksiya mavjud.

Umumiy sintaksis:

InStr([start], string1, string2, [compare])

Bu yerda

Argumentlar Majburiy/ Ixtiyoriy Aniqlash
start Majburiy emas Izlashning boshlang'ich pozitsiyasi.
  • Sukut bo'yicha InStr funksiyasi belgilar o'rnini boshlang'ich pozitsiyasidan emas, 1 dan sanash orqali hisoblaydi. Demak, agar xohlasangiz, bu joyni bo'sh qoldirishingiz mumkin.
string1 Majburiy Qidiriladigan satr, Asosiy satr.
string2 Kerakli Asosiy satrda qidiriladigan satr .
taqqoslash Majburiy emas InStr funksiyasi sukut boʻyicha katta-kichik harflarga sezgir. Ammo InStr katta-kichik harflarni o'zgartirmoqchi bo'lsangiz, ma'lum bir taqqoslashni amalga oshirish uchun argumentni shu yerga o'tkazishingiz mumkin. Bu dalil quyidagi bo'lishi mumkinqiymatlar,
  • vbBinaryCompare -> ikkilik taqqoslashni amalga oshiradi, 0
  • vbTextCompare qiymatini qaytaradi -> matnni taqqoslashni amalga oshiradi, 1 qiymatini qaytaradi
  • vbDatabaseCompare -> ma'lumotlar bazasini taqqoslashni amalga oshiradi, 2 qiymatini qaytaradi

Sukut bo'yicha InStr taqqoslash argumenti sifatida vbBinaryCompare ni oladi.

VBA yordamida berilgan satrda oʻziga xos satr oʻrnini topishning 8 ta oson misoli

Keling, berilgan satrdagi maʼlum satrlarning oʻrnini olish uchun oddiy misollarni koʻrib chiqamiz. VBA .

1. Matnning satrdagi oʻrnini topish uchun VBA

Quyida topish uchun InStr misoli keltirilgan. matnning satrdagi joylashuvi.

  • Klaviaturangizda Alt + F11 tugmalarini bosing yoki Tuzuvchi -> Visual Basic -ni ochish uchun Visual Basic Editor .

  • Qalqib chiquvchi kod oynasida, menyu panelidan , Qo'shish -> Modul .

  • Endi kod oynasida VBA Sub ichida oddiy InStr dasturini yozing. Protsedura (pastga qarang).
5836

Kodingiz endi ishga kirishga tayyor.

  • F5 tugmasini bosing klaviaturangizda yoki menyu panelidan Ishga tushirish -> Sub/UserForm ni ishga tushiring. Shuningdek, makrosni ishga tushirish uchun pastki menyu satridagi kichik o'ynash belgisini bosishingiz mumkin.

Siz buni ko'rasiz qalqib chiquvchi xabar oynasi sizga raqam beraditekshirmoqchi bo'lgan matnning o'rnini e'lon qilish .

Izoh:

Bizning asosiy qatorimiz, “ Baxt is a choice ” bu 21 harfli jumla (boʻshliqlar bilan) va biz “ tanlov ” matnining ushbu qatordagi oʻrnini topmoqchi edik. “ tanlov ” matni birlamchi satrning 16-pozitsiyasidan boshlangan, shuning uchun biz xabarlar oynasidagi chiqish sifatida 16 raqamini oldik.

2. Stringdagi ma'lum bir pozitsiyadan matnni topish uchun VBA

Endi ma'lum bir raqamdan pozitsiyani olishni istasak nima bo'lishini bilib olaylik.

  • Xuddi shunday. oldin Dasturchi yorlig'idan Visual Basic Editor -ni oching va kod oynasida Qo'shish Moduli .
  • In kod oynasida yuqorida ko'rsatilgan oddiy InStr dasturini yozing va matnni sanab o'tmoqchi bo'lgan pozitsiyaga ko'ra boshlang'ich argumentidagi qiymatni o'tkazing.
9151

  • Keyin, Ishga tushirish kodni.

Siz qalqib chiquvchi xabar oynasi paydo bo'lishini ko'rasiz. Siz tekshirmoqchi bo'lgan ma'lum bir pozitsiyadan boshlab matnning o'rnini e'lon qiluvchi raqamni bering.

Izoh:

Biz allaqachon bilganimizdek (1-bosqich muhokamasidan) “ tanlov ” matni 16 pozitsiyasidan boshlangan, shuning uchun biz ikkita “ tanlov ” birlamchi qatorda va 17 ni biz uchun belgilangBirinchi “ tanlov ”ni o‘tkazib yuborish uchun 1-parametr. Shunday qilib, biz yuqoridagi makrosni Ishga tushirish va u bizga 27 pozitsiya raqamini ko'rsatdi, bu aynan ikkinchi tanlov ” pozitsiyasining raqami. berilgan qatorda.

3. VBA satrda katta-kichik harflarga sezgir bo'lmagan InStr funksiyasi bilan matnni topish uchun

InStr funksiyasining kiritilishidan boshlab siz allaqachon bilasizki, sukut bo'yicha InStr funksiyasi. katta-kichik harf sezgir. Keling, buni misol bilan aniqlaymiz.

Quyidagi VBA kodiga qarang, u yerda “ Tanlov soʻzining oʻrnini topmoqchi edik. ” “ katta “C” bilan “ Baxt - bu tanlov ” qatorida tanlov kichik “c” bilan yoziladi. .

  • Kodni ishga tushiring va natijamiz sifatida 0 ni toping.

Buning sababi InStr funktsiyasi kapital “C” va kichik “c” ga boshqacha munosabatda bo'ladi. Shunday qilib, u satrda “ Tanlov ” so‘zini qidirdi va hech qanday moslik topmadi, shuning uchun 0 ni qaytardi.

  • InStr funktsiyasini katta-kichik harflarni sezmaydigan qilish uchun solishtirish argumentini vbTextCompare ga o'rnating (pastga qarang).
3924

  • Ishga tushirish kod.

Siz matnning pozitsiyasini olasiz. satrdan, matn katta yoki kichik harflar bilan yozilsin.

4. Matnni satrning oʻng tomonida topish uchun VBA

Hozirgacha InStr funksiyasi bizga faqat satrning chap tomonidagi pozitsiyani berardi. Agar matn o'rnini satrning o'ng tomonidan topmoqchi bo'lsangiz-chi.

InStrRev funktsiyasi o'ng tomondan qidiradi. InStrRev funktsiyasi InStr funksiyasiga juda o'xshash ishlaydi va u sizga satrning o'ng tomoni dan matnning o'rnini topadi.

Farqni tushunish uchun quyidagi misollarga qarang.

  • Agar biz quyidagi kodni InStr funksiyasi bilan ishlatsak,

bu bizga “ tanlov ” birinchi matnining o‘rnini ( 16 ) beradi.

  • Agar biz InStrRev funktsiyasi bilan bir xil kodni ishlatsak,

bu bizga pozitsiyani beradi. ( 27 ) oxirgi matn “ tanlov ”.

Oʻxshash oʻqishlar:

  • FindNext Excel-da VBA-dan foydalanish (2 ta misol)
  • VBA yordamida qanday topish va almashtirish (11 usul)
  • Excelda VBA yordamida aniq moslikni toping (5 usul)

5. Belgining satrdagi oʻrnini topish uchun VBA

Siz matnni topganingiz kabi satrdagi maʼlum bir belgining oʻrnini ham topishingiz mumkin.

  • Nusxa nusxalash quyidagi kodni VBA kod oynangizga
9926

  • Va Ishga tushirish makrosni.

Bizning berilgan qatorimizdagi birinchi “ e ”soni 7 pozitsiyasi.

6. Satrda pastki qatorni topish uchun VBA

Bu yerda biz satrda pastki satr bor yoki yoʻqligini qanday aniqlashni bilib olamiz.

Buni olish uchun bizda bor kodimizdagi IF bayonotini ishga tushirish uchun.

  • Avvalgidek, Developer yorlig'idan Visual Basic Editor -ni oching va Kod oynasiga Moduli kiriting.
  • Kod oynasida quyidagi kodni nusxalang va uni joylashtiring.
2438

Sizning kod endi ishga tayyor.

  • Ishga tushirish .

Agar satringiz pastki qatorni o'z ichiga olsa, siz moslik topildi xabarini olasiz, aks holda u hech qanday moslik topilmaydi. Bizning misolimizda biz " Baxt - bu tanlov " asosiy qatorida " tanlov " so'zi bor yoki yo'qligini aniqlamoqchi edik. emas. Shunday qilib, biz Moslik topildi natijasini olamiz.

7. Yacheyka diapazonida satrni topish uchun VBA

Siz satrning hujayra diapazonida ma'lum bir matnni qidirishingiz va ma'lum bir qatorni qaytarishingiz mumkin.

Quyidagi misolga qarang. “ Dr. ” ni toping va oʻyin boʻlganda “ Doktor ”ni qaytaradi.

  • Quyida yuqorida muhokama qilingan natijani olish uchun kod berilgan,
1760

  • Ishga tushirish kod va natija quyida ko'rsatilgan

  • Makroni o'zingizning ehtiyojingizga qarab o'zgartirishingiz mumkin. Masalan, agar xohlasangizsatrning istalgan katagida “ Prof. ” ni topish va qaytish sifatida “ Professor ”ni olish uchun “<1” ni o‘tish kifoya> Prof. ” “ Dr ” oʻrniga qiymat sifatida. makrosning 4-qatorida va 5-qatordagi “ Doktor ” oʻrniga “ Professor ” va belgilang. yacheyka diapazoni soni mos ravishda.

8. Hujayradagi satrni topish uchun VBA

Shuningdek, siz ma'lum bir matnni bitta satr katakchasidan qidirishingiz va ma'lum bir qatorni qaytarishingiz mumkin.

  • Quyidagi koddan nusxa oling va uni kod oynasiga joylashtiring.
2521

U “ Dr. <2” ni qidiradi>” B5 uyasida va agar u moslikni topsa, C5 uyasida “ Doktor ”ni qaytaradi.

  • Makroni ehtiyojingizga qarab o'zgartirishingiz mumkin. Misol uchun, agar siz satrning istalgan katagida “ Prof. ” ni topmoqchi bo'lsangiz va qaytish sifatida “ Professor ” ni oling, keyin “ Dr ” oʻrniga “ Prof. ” ni qiymat sifatida oʻtkazing. makrosning 2-qatorida va 3-satrida “ Doktor ” oʻrniga “ Professor ” va belgilang. mos ravishda hujayra mos yozuvlar raqami.

Xulosa

Ushbu maqola VBA makrosidan foydalangan holda Excelda qatordagi ba'zi matnlarni qanday topishni ko'rsatib berdi. Umid qilamanki, ushbu maqola siz uchun juda foydali bo'ldi. Haqida har qanday savollarni bemalol so'rangmavzu.

Hugh West - bu sohada 10 yildan ortiq tajribaga ega bo'lgan yuqori tajribali Excel treneri va tahlilchisi. Buxgalteriya hisobi va moliya yo‘nalishi bo‘yicha bakalavr va biznes boshqaruvi bo‘yicha magistr darajasiga ega. Xyu o'qitishga ishtiyoqi bor va unga amal qilish va tushunish oson bo'lgan o'ziga xos o'qitish usulini ishlab chiqdi. Uning Excel bo'yicha ekspert bilimlari butun dunyo bo'ylab minglab talabalar va mutaxassislarga o'z malakalarini oshirishga va o'z martabalarida muvaffaqiyat qozonishlariga yordam berdi. Xyu o'z blogi orqali o'z bilimlarini dunyo bilan baham ko'radi, jismoniy shaxslar va korxonalarga o'z salohiyatini to'liq ro'yobga chiqarishga yordam berish uchun bepul Excel darsliklari va onlayn treninglarni taklif qiladi.