Ynhâldsopjefte
Ien fan 'e wichtichste en meast brûkte funksjes dy't wy brûke yn Visual Basic Application (VBA) is de Find-funksje. Yn dit artikel sil ik jo sjen litte hoe't jo de FIND-funksje fan Excel brûke kinne mei goede foarbylden en yllustraasjes.
Download Oefenwurkboek
Funksje fine yn VBA yn Excel.xlsm
6 rappe foarbylden om de FYN-funksje yn VBA te brûken
Hjir hawwe wy krige in gegevensset mei de Boeknammen, Auteurs en Prizen fan guon boeken fan in boekhannel mei de namme Martin Bookstore.
Hjoed ús doel is om ferskate soarten gebrûk te sjen fan de Fynfunksje fan VBA út dizze dataset.
1. Brûk de Fynfunksje yn VBA sûnder parameter
Jo kinne de Fynfunksje fan VBA sûnder parameters brûke.
Dan sil sykje nei in spesifike wearde binnen in berik fan sellen en weromjaan de earste wedstriid dy't fynt.
Litte wy sykje nei de namme "P. B. Shelly” yn de kolom Author ( C4:C13 ).
De rigel mei de Fynfunksje sil wêze:
Set cell = Range("C4:C17").Find("P. B. Shelly")
De folsleine VBA-koade sil wêze:
⧭ VBA-koade:
1665
⧭ Utfier:
It produseart in Makro neamd Fyn . As jo de makro útfiere, sil it $C$6 weromjaan, it earste seladres mei de namme P. B. Shelly .
Lês mear: Fyn binnen in berik mei VBA ynExcel: Ynklusyf eksakte en diellike oerienkomsten
2. Tapasse de Fynfunksje yn VBA mei de After-parameter (om te begjinnen mei sykjen fan in spesifike sel)
Jo kinne de parameter After brûke mei de Fynfunksje yn VBA . Dan sil it begjinne te sykjen nei in wearde fan ûnderen in sel binnen in berik.
Bygelyks, litte wy begjinne te sykjen nei de namme "P. B. Shelly” fan ûnderen sel C6 .
De rigel fan koade sil wêze:
Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))
En de folsleine VBA-koade sil wêze:
⧭ VBA-koade:
6902
⧭ Utfier:
It sil weromkomme $C$13 omdat it begjint te sykjen fan ûnderen sel C6 , dat is fan sel C7 . Sa wurdt it P. B. Shelly yn sel C13 earst.
Lês mear: How to Find String in a Sel mei VBA yn Excel
3. Rinne de Fynfunksje út yn VBA mei Wrapping om de After-parameter (Om in wearde op in sirkulêre manier te sykjen)
De After -parameter mei de Fynfunksje siket nei in wearde op in sirkelfoarmige manier
Dat is, it begjint te sykjen fan ûnderen in sel binnen in berik, einiget mei sykjen yn it berik, en begjint dan wer fanôf de boppekant fan it berik.
Litte wy bygelyks begjinne mei it sykjen fan de namme “John Keats” fan ûnder sel C8 mei de parameter After .
De rigel fan koade sil wêze:
Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))
En defolsleine VBA-koade sil wêze:
⧭ VBA-koade:
1484
⧭ Utfier:
It sil $C$7 weromjaan, om't it begjint te sykjen fan ûnder sel C8 , dat is fan sel C9 .
It fynt neat oant sel C13 , dus it begjint wer fan sel C4 en fynt ien yn sel C7 .
Gelykbere lêzings:
- Hoe kinne jo string fine mei VBA yn Excel (8 foarbylden)
- Fyn eksakte oerienkomst mei VBA yn Excel (5 manieren)
- Hoe kinne jo fine en ferfange mei VBA (11) Ways)
4. Brûk de Fynfunksje yn VBA mei de LookAt-parameter (foar eksakte of foar in part oerienkomst)
Jo kinne de Fynfunksje brûke yn VBA mei de LookAt parameter.
Brûk LookAt = xlWhole foar in Eksakte oerienkomst, en LookAt=xlPart foar in Partial oerienkomt.
Lit ús bygelyks besykje út te finen oft der in boek is mei de namme “Ode” yn de Boeknamme kolom ( B4:B13 ).
As wy xlWhole brûke yn 'e rigel fan koade:
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)
De útfier sil in flater sjen litte omdat it gjin eksakte oerienkomst sil fine.
Mar as jo brûke:
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)
Dan komt it werom $B$9 , om't der in boek mei de namme “Ode” yn sit yn sel B7 , Ode oan de Nachtegaal.
Dus de folsleine koade foar de diellike wedstriidis:
⧭ VBA-koade:
7492
5. Betsjinje de Fynfunksje yn VBA mei SearchDirection Parameter (Om de rjochting fan it sykjen op te jaan)
Jo kinne ek de Fynfunksje brûke yn VBA mei de SearchDirection parameter.
Brûk SearchDirection = xlNext foar sykjen fan Boppe nei ûnderen .
En SearchDirection = xlPrevious foar sykjen fan Onder to Top .
Litte wy bygelyks besykje de Auteur Elif Shafak te finen yn de kolom Author ( C4:C13 ).
As wy xlNext brûke yn 'e rigel fan koade:
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)
Dan sil it $C$5 weromjaan.
Mar as jo brûke:
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)
Dan sil it werom $C$11 .
Dus de folsleine koade foar sykjen fan ûnder nei boppe is:
⧭ VBA-koade:
3346
6. Funksje fine yn VBA mei MatchCase-parameter (foar saakgefoelige of ûngefoelige wedstriid)
Ut lêst kinne jo de Fynfunksje mei de parameter MatchCase brûke.
Gebrûk MatchCase = Wier foar in hoofdlettergefoelige match , en MatchCase=False foar in case-insensitive match.
Litte wy bygelyks besykje it boek "mem" te finen yn 'e kolom Boeknamme ( B4:B13 ).
As wy True brûke yn 'e rigel fan koade:
Set cell = Range("B4:B13").Find("mother", MatchCase:=True)
De útfier sil in flater sjen litte om't it sil' t fine gjinmatch.
Mar as jo brûke:
Set cell = Range("B4:B13").Find("mother", MatchCase:=False)
Dan komt it werom $ B$9 omdat der in boek mei de namme "Mem" is yn sel B8 .
Dus de folsleine koade foar de case-insensitive wedstriid is:
⧭ VBA Code:
9051
Konklúzje
Mei dizze metoaden kinne jo de Find Function yn Visual Basic Application brûke. Hawwe jo noch fragen? Freegje it ús frij.