VBA-da Find funktsiyasidan qanday foydalanish (6 ta misol)

  • Buni Baham Ko'Ring
Hugh West

Biz Visual Basic Application (VBA) da ishlatadigan eng muhim va keng qoʻllaniladigan funksiyalardan biri Find funksiyasidir. Ushbu maqolada men sizga Excelning TOPISH funksiyasidan to'g'ri misollar va rasmlar bilan qanday foydalanishingiz mumkinligini ko'rsataman.

Mashq kitobini yuklab oling

Excel.xlsm da VBA funksiyasini topish

VBA-da FIND funksiyasidan foydalanish uchun 6 ta tezkor misollar

Mana biz Martin Bookstore nomli kitob doʻkonining ayrim kitoblarining Kitob nomlari, mualliflari va Narxlari bilan maʼlumotlar toʻplamini oldi.

Bugun. Bizning maqsadimiz ushbu ma'lumotlar to'plamidan VBA ning Topish funktsiyasi dan turli xil foydalanish turlarini ko'rishdir.

1. Parametrsiz VBA-da topish funksiyasidan foydalaning

Siz VBA ning Topish funksiyasidan parametrsiz foydalanishingiz mumkin.

Keyin u yacheykalar oralig'ida ma'lum bir qiymatni qidiradi va topilgan birinchi moslikni qaytaradi.

Keling, nomini qidiramiz “P. B. Shelly” ustunida Muallif ( C4:C13 ).

Topish funksiyasi boʻlgan qator quyidagicha boʻladi:

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

To'liq VBA kodi quyidagicha bo'ladi:

VBA kodi:

5227

Chiqish:

U hosil qiladi Makro Topish deb nomlangan. Agar siz Makro-ni ishga tushirsangiz, u $C$6 , ya'ni P nomli birinchi katak manzilini qaytaradi. B. Shelly .

Batafsil o'qing: VBA bilan diapazon ichida topingExcel: Aniq va qisman mosliklarni o'z ichiga oladi

2. VBA-da Find funksiyasini After parametri bilan qo'llang (Ma'lum bir hujayradan qidirishni boshlash uchun)

Siz After parametridan Find funksiyasi bilan foydalanishingiz mumkin. VBA da. Keyin u diapazondagi katak ostidan qiymatni qidirishni boshlaydi.

Masalan, nomini qidirishni boshlaylik “P. B. Shelly” pastki katakchadan C6 .

Kod qatori quyidagicha bo'ladi:

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

Va to'liq VBA kodi bo'ladi:

VBA kodi:

6269

Chiqish:

U $C$13 ni qaytaradi chunki u C6 katakchasi ostidan qidirishni boshlaydi, bu C7 katagidan. Shunday qilib, u P ni oladi. B. Shelly katakchada C13 birinchi.

Batafsil o'qing: Qanday qilib satrni topish mumkin Excelda VBA dan foydalanilgan hujayra

3. VBA-da Topish funktsiyasini keyin parametrni o'rash bilan ishga tushiring (aylana bo'ylab qiymatni qidirish uchun)

After parametri Find funktsiyasi bilan qiymatni doiraviy tarzda qidiradi

Ya'ni, u diapazondagi katakning ostidan qidirishni boshlaydi, diapazonda qidirishni tugatadi va yana diapazonning yuqori qismidan boshlanadi.

Masalan, After parametridan foydalanib, C8 katakning pastki qismidan “Jon Keats” nomini qidirishni boshlaylik.

Satri kod bo'ladi:

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

Vato'liq VBA kodi bo'ladi:

VBA kodi:

2071

Chiqish:

U $C$7 ni qaytaradi, chunki u quyida joylashgan C8 katakchadan qidirishni boshlaydi, ya'ni C9 katakchasi.

U C13 katakgacha hech narsa topmaydi, shuning uchun u yana C4 katakchadan boshlanadi va hujayradan bittasini topadi. C7 .

Shunga o'xshash o'qishlar:

  • VBA bilan stringni qanday topish mumkin Excelda (8 ta misol)
  • Excelda VBA yordamida aniq moslikni toping (5 usul)
  • VBA yordamida qanday topish va almashtirish (11) Yo'llari)

4. VBA-da Find funksiyasidan LookAt parametri bilan foydalaning (aniq yoki qisman moslik uchun)

Siz VBA da Topish funksiyasidan <1 bilan foydalanishingiz mumkin>LookAt parametri.

Aniq moslik uchun LookAt = xlWhole va Qisman uchun LookAt=xlPart dan foydalaning. mos.

Masalan, Kitob nomi ustunida (<1) “Ode” nomli kitob bor yoki yoʻqligini aniqlashga harakat qilaylik>B4:B13 ).

Agar kod satrida xlWhole dan foydalansak:

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

Chiqish xatoni ko'rsatadi, chunki u hech qanday aniq moslik topmaydi.

Ammo:

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

Keyin u qaytaradi $B$9 , chunki katakchada “Ode” nomli kitob bor. B7 , Bulbulga qasida.

Shunday qilib, qisman uchun to'liq kodbu:

VBA kodi:

2460

5. SearchDirection parametri bilan VBA-da Topish funksiyasini boshqaring (Qidiruv yoʻnalishini belgilash uchun)

Shuningdek, VBA da Topish funksiyasidan foydalanishingiz mumkin. SearchDirection parametri.

Izlash uchun SearchDirection = xlNext dan foydalaning Yuqoridan pastga .

Va SearchDirection = xlPrevious Pastdan yuqoriga qidirish uchun.

Masalan, Muallif ustunidan Muallif Elif Shafak ni topishga harakat qilaylik. ( C4:C13 ).

Agar kod satrida xlNext dan foydalansak:

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

Keyin u $C$5 ni qaytaradi.

Ammo agar siz foydalansangiz:

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

Keyin u qaytaradi $C$11 .

Shunday qilib, pastdan yuqoriga qarab qidirish uchun toʻliq kod bu:

VBA kodi:

7387

6. MatchCase parametri bilan VBA funksiyasini toping (Harf-katta yoki sezgir moslik uchun)

Nihoyat, MatchCase parametri bilan Find funksiyasi dan foydalanishingiz mumkin.

Harf-harflarga sezgir match , uchun MatchCase = True va uchun MatchCase=False dan foydalaning katta-kichik harf sezgir mos.

Masalan, Kitob nomi ustunidan ( B4:B13) “ona” kitobini topishga harakat qilaylik. ).

Agar biz kod satrida True dan foydalansak:

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

Chiqish xatoni ko'rsatadi, chunki u g'alaba qozonadi' hech qanday topmamos keladi.

Ammo agar siz quyidagini ishlatsangiz:

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

Keyin qaytib keladi $ B$9 , chunki B8 katagida “Ona” nomli kitob bor.

Demak, toʻliq kod katta-kichik harflarni sezmaydi mosligi:

VBA kodi:

3725

Xulosa

Ushbu usullardan foydalanib Visual Basic ilovasida Find funksiyasidan foydalanishingiz mumkin. Savollaringiz bormi? Bizdan bemalol so'rang.

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.