Hoe kinne jo string fine mei VBA yn Excel (8 foarbylden)

  • Diel Dit
Hugh West

It ymplementearjen fan VBA is de meast effektive, fluchste en feilichste metoade om elke operaasje yn Excel út te fieren. Yn dit artikel sille wy jo sjen litte hoe't jo bepaalde stringen fine kinne yn in oare opjûne tekenrige mei VBA yn Excel.

Download Practice Template

Jo kin it fergese Excel-sjabloan fan hjir downloade.

VBA te finen yn String.xlsm

InStr-funksje

Microsoft Excel hat in ynboude funksje neamd de InStr-funksje om de posysje fan spesifike snaren yn in opjûne tekenrige te finen.

Generic Syntax:

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

Hjir,

Arguminten Eask/ opsjoneel Definysje
start Opsjoneel Startposysje fan it sykjen.
  • Standert berekkent de funksje InStr de karakterposysje troch te tellen fan 1, net fan 'e startposysje. Sa kinne jo dit leech litte as jo wolle.
string1 Ferplicht De tekenrige om yn te sykjen, primêre tekenrige.
string2 Ferplicht De tekenrige om te sykjen yn de primêre tekenrige .
fergelykje Opsjoneel De funksje InStr is standert haadlettergefoelich. Mar as jo in saakûngefoelige InStr útfiere wolle, dan kinne jo it argumint hjir trochjaan om in bepaalde fergeliking út te fieren. Dit argumint kin it folgjende wêzewearden,
  • vbBinaryCompare -> fiert in binêre ferliking, werom wearde 0
  • vbTextCompare -> fiert in tekst ferliking, return wearde 1
  • vbDatabaseCompare - & GT; fiert in databankfergeliking, jout wearde 2

Standert nimt InStr vbBinaryCompare as it fergelykargumint.

8 maklike foarbylden om spesifike stringposysje te finen yn opjûne string mei VBA

Litte wy wat ienfâldige foarbylden sjen om de posysjes fan bepaalde snaren yn in opjûne snaar te krijen mei VBA .

1. VBA om posysje fan tekst yn tekenrige te finen

Hjirûnder is in foarbyld fan InStr om te finen de posysje fan in tekst yn in tekenrige.

  • Druk op Alt + F11 op jo toetseboerd of gean nei de ljepper Utwikkelder -> Visual Basic om Visual Basic Editor te iepenjen.

  • Yn it pop-up koade finster, út de menubalke , klik op Ynfoegje -> Module .

  • Skriuw no yn it koadefinster in ienfâldich InStr programma yn in VBA Sub Proseduere (sjoch hjirûnder).
1346

Jo koade is no klear om te rinnen.

  • Druk op F5 op jo toetseboerd of út de menubalke selektearje Utfiere -> Run Sub/UserForm . Jo kinne ek gewoan klikke op it lytse Play-ikoantsje yn 'e submenubalke om de makro út te fieren.

Jo sille sjen dat de pop-up berjocht doaze sil jo in nûmerferklearje de posysje fan 'e tekst dy't jo wolle kontrolearje.

Utlis:

Us primêre tekenrige, " Happiness is in kar ” is in sin fan 21 letters (mei spaasjes) en wy woenen de posysje fine fan de tekst “ kar ” yn dy tekenrige. De tekst " keuze " begon fan 'e 16e posysje fan' e primêre tekenrige, dêrtroch krigen wy nûmer 16 as ús útfier yn it berjochtfak.

2. VBA om tekst te finen fan in spesifike posysje yn string

No litte wy útfine wat der barre soe as wy de posysje fan in bepaald nûmer krije wolle.

  • Deselde manier as foar, iepenje Visual Basic Editor fan it ljepblêd ûntwikkelder en Foegje in Module yn it koadefinster.
  • Yn it koadefinster, skriuw in ienfâldich InStr -programma hjirboppe werjûn en jou de wearde yn it startargumint troch neffens de posysje wêrfan jo jo tekst telle wolle.
5445

  • Folgjende, Rin de koade.

Jo sille sjen dat it pop-up berjochtfak sil jou jo in nûmer dat de posysje ferklearret fan de tekst begjinnend fan in bepaalde posysje dy't jo kontrolearje woene.

Utlis:

Sa't wy al wisten (fan 'e diskusje fan faze 1) dat de tekst " keuze " begon fan 'e posysje fan 16 , dus hawwe wy twa ynfoege " keuze " yn 'e primêre tekenrige en set 17 as ús1e parameter om de earste " keuze oer te slaan". Dat, wy Rin de boppesteande makro en it liet ús posysjenûmer 27 sjen dat krekt it posysjenûmer is fan de twadde " kar " yn de opjûne tekenrige.

3. VBA om tekst te finen mei haadletterûngefoelige InStr-funksje yn String

Fan 'e yntroduksje fan 'e funksje InStr witte jo al dat standert de funksje InStr is haadlettergefoelich. Litte wy dat útfine mei in foarbyld.

Sjoch de folgjende VBA -koade, dêr't wy de posysje fan it wurd " Keuze fine woene. " mei in haadletter "C" yn 'e tekenrige " Gelok is in kar " wêrby't kar skreaun is mei in lytse "c" .

  • Rin de koade en fyn 0 as ús útfier.

Dat komt omdat de funksje InStr haadstêd "C" en lytse "c" oars behannelet. Dat it socht nei it wurd " Keuze " yn 'e tekenrige en krige gjin oerienkomst, dus joech 0 werom.

  • Om de funksje InStr case-insensitive te meitsjen, set it fergelykargumint op vbTextCompare (sjoch hjirûnder).
7437

  • Rin de koade.

Jo krije de posysje fan 'e tekst fan de tekenrige, oft de tekst skreaun is yn haadletters of lytse letters .

4. VBA om tekst te finen fan rjochts fan in tekenrige

Oant no ta joech de InStr funksje ús allinich de posysje fan 'e lofterkant fan' e tekenrige. Mar wat as jo de tekstposysje fan 'e rjochterkant fan' e tekenrige fine wolle.

De InStrRev-funksje siket fanôf rjochts. De funksje InStrRev wurket hiel ferlykber mei de funksje InStr en sil jo de posysje fine fan in tekst fan 'e rjochterkant fan 'e tekenrige.

Sjoch de folgjende foarbylden om it ferskil te begripen.

  • As wy de folgjende koade útfiere mei de funksje InStr dan,

it jout ús de posysje ( 16 ) fan de earste tekst " keuze ".

  • Mar as wy deselde koade útfiere mei de funksje InStrRev dan,

jout it ús de posysje ( 27 ) fan de lêste tekst " keuze ".

Silkene lêzingen:

  • FindNext mei VBA yn Excel (2 foarbylden)
  • Hoe kinne jo fine en ferfange mei VBA (11 manieren)
  • Fyn eksakte oerienkomst mei VBA yn Excel (5 manieren)

5. VBA om posysje fan in karakter yn tekenrige te finen

Jo kinne ek de posysje fan in bepaald karakter yn in tekenrige fine op deselde manier as jo tekst fûnen.

  • Kopiearje de folgjende koade yn jo VBA -koadefinster
5770

  • En Run de makro.

De earste " e " yn ús opjûne tekenrige is byit nûmer 7 posysje.

6. VBA om substring yn in tekenrige te finen

Hjir sille wy leare hoe't te finen oft in tekenrige in substring befettet of net.

Om dat te krijen, hawwe wy om in IF-ferklearring yn ús koade út te fieren.

  • Op deselde manier as earder, iepenje Visual Basic Editor fan it ljepblêd ûntwikkelder en Foegje in Module yn it koadefinster.
  • Kopieer yn it koadefinster de folgjende koade en plak dizze.
6237

Jo koade is no klear om te rinnen.

  • Rin de makro.

As jo ​​ string de substring befettet dan krije jo in oerienkomst fûn , oars sil it gjin oerienkomst fûn werombringe. Yn ús foarbyld woene wy ​​útfine oft ús primêre tekenrige " Gelok is in kar " it wurd " kar " of net. As it docht, krije wy in Wedstriid fûn resultaat.

7. VBA om string te finen yn in selberik

Jo kinne sykje nei in bepaalde tekst yn in selberik fan tekenrige en in bepaalde tekenrige weromjaan.

Sjoch nei it folgjende foarbyld wêr't wy sille fyn " Dr. " en as der in wedstriid is sil it " Dokter " weromjaan.

  • Hjirûnder is de koade om it hjirboppe besprutsen resultaat te krijen,
7266

  • Run de koade en it resultaat wurdt hjirûnder werjûn

  • Jo kinne de makro oanpasse neffens jo need. Bygelyks, as jo wolleom " Prof. " te finen yn elke sel fan tekenrige, en " Professor " as weromkomst te krijen, pass dan gewoan " Prof. " as de wearde ynstee fan " Dr ." yn 'e 4e rigel fan 'e makro en " Professor " ynstee fan " Dokter " yn 'e 5e rigel fan 'e makro en definiearje de sel berik nûmer dêrmei.

8. VBA om tekenrige yn in sel te finen

Jo kinne ek sykje nei in bepaalde tekst yn in inkele sel fan tekenrige en in bepaalde tekenrige weromjaan.

  • Kopiearje de folgjende koade en plak it yn it koadefinster.
1702

It sil sykje nei " Dr. " yn Sel B5 en as it de oerienkomst fynt dan jout " Dokter " yn Sel C5 .

  • Jo kinne de makro oanpasse neffens jo need. As jo ​​​​bygelyks " Prof. " wolle fine yn elke sel fan tekenrige, en krije " Professor " as werom, jou dan gewoan " Prof. " troch as de wearde ynstee fan " Dr ." yn 'e 2e rigel fan' e makro en " Professor " ynstee fan " Dokter " yn 'e 3e rigel fan 'e makro en definiearje de selferwizingsnûmer neffens.

Konklúzje

Dit artikel liet jo sjen hoe't jo bepaalde teksten yn tekenrige fine kinne yn Excel mei VBA-makro. Ik hoopje dat dit artikel tige foardielich foar jo west hat. Fiel jo frij om fragen te stellen oangeandeit ûnderwerp.

Hugh West is in tige betûfte Excel-trainer en analist mei mear as 10 jier ûnderfining yn 'e yndustry. Hy hat in bachelorstitel yn boekhâlding en finânsjes en in masterstitel yn bedriuwsadministraasje. Hugh hat in passy foar lesjaan en hat in unike lesoanpak ûntwikkele dy't maklik te folgjen en te begripen is. Syn saakkundige kennis fan Excel hat tûzenen studinten en professionals wrâldwiid holpen har feardigens te ferbetterjen en útblinke yn har karriêre. Troch syn blog dielt Hugh syn kennis mei de wrâld, en biedt fergese Excel-tutorials en online training om partikulieren en bedriuwen te helpen har folsleine potensjeel te berikken.