Hoe substring te finen mei VBA (9 manieren)

  • Diel Dit
Hugh West

As jo ​​op syk binne nei guon fan 'e maklikste manieren om substring te finen mei VBA, dan binne jo op it goede plak. Nei it trochgean fan dit artikel kinne jo de posysje fan in substring fine of gegevens ekstrahearje mei dizze substring of it formaat fan in substring maklik feroarje. Litte wy it artikel yngean.

Wurkboek downloade

Sample ynhâld

9 manieren om substring te finen mei VBA

Hjir haw ik de folgjende gegevenstabel wêrmei ik de manieren sil sjen litte om substring te finen yn in tekenrige mei VBA. Ik sil ek besykje de manieren sjen te litten om substring yn in willekeurige tekenrige te finen.

Ik haw dizze taak útfierd mei Microsoft Excel 365 ferzje, jo kinne elke oare ferzje brûke neffens jo gemak.

Metoade-1: Substring fine yn in tekenrige mei VBA

As jo ​​jo winske substring yn in tekenrige fine wolle mei VBA, kinne jo

11>de InStr-funksje yn de VBA-koade.

Stap-01 :

➤Gean nei Utwikkelder Tab>> Visual Basic Opsje

Dan sil de Visual Basic Editor iepenje.

➤Gean nei Ynfoegje Tab>> Module Opsje

Dêrnei sil in Module oanmakke wurde.

Stap-02 :

➤Skriuw de folgjende koade

4227

Hjir, InStr(1, " Ik tink dêrom dat ik bin", "tinke") sil de posysje fan 'e substring fan in tekenrige weromjaan. 1 is destartposysje, " Ik tink dêrom bin ik" is de tekenrige wêr't jo jo winske substring fine, en "think" is de substring dy't jo fine wolle. It is standert hoofdlettergefoelich, dus pas op foar it gefal fan jo substring dat jo sykje wolle.

➤Druk op F5

Resultaat :

Dêrnei krije jo de folgjende Berjochtfak mei de posysje fan de "tink" substring.

Metoade-2: Case-ûngefoelige substring fine yn in tekenrige

As jo ​​jo winske substring yn in tekenrige fine wolle, nettsjinsteande it gefal mei VBA, folgje dan dit metoade.

Stap-01 :

➤Folgje Stap-01 fan Metoade-1

9192

Hjir wurdt vbTextCompare brûkt om haadletter-ûngefoelige substring te finen.

➤Druk op F5

Resultaat :

Dan krije jo de folgjende Berjochtfak mei de posysje fan de "tink" substring.

Jo kinne itselde dwaan troch de folgjende koade te brûken.

8378

Hjir, Opsje Ferlykje tekst sil haadletter-ûngefoelige substring fine.

➤Druk op F5

Resultaat :

Dêrnei sille jo Ik krij it folgjende Berjochtfak mei de posysje fan de "tink" substring.

Metoade-3: Mei help fan InstrRev-funksje yn VBA

Hjir sil ik de manier sjen litte om in substring te finen fan 'e ein fan instring.

Stap-01 :

➤Folgje Stap-01 fan Metoade-1

4795

InStrRev sil de substring fan de rjochterkant fine ynstee fan de linkerkant.

➤Druk op F5

Resultaat :

Dan krije jo de folgjende Berjochtfak mei de posysje fan de twadde "I" substring fan de rjochterkant.

Metoade-4: De posysje fan substring fine yn in tekenrige yn in berik fan gegevens

As jo ​​it spesjale karakter fine wolle “@” yn de E-post-ID , folgje dan dizze metoade. Ik haw hjir de Posysjekolom tafoege foar dit doel.

Stap-01 :

➤Folgje Stap-01 fan Metoade-1

7101

It sil in funksje meitsje mei de namme FindSubstring (jo kinne elke oare namme brûke)

wearde is de selferwizing dy't de tekenrige befettet en it wurdt ferklearre as Rik .

Stap -02 :

➤Selektearje de útfier Sel E5

➤Typ de folgjende funksje (makke troch VBA )

=FindSubstring(D5)

D5 is de sel dy't de tekenrige befettet.

➤Druk op ENTER

➤Sleep de Fillhandtak Tool

Resultaat :

Dêrnei krije jo de posysjes fan it spesjale karakter @” yn it E-post-ID .

Gelykbere lêzingen:

  • Hoe te finenString yn in sel mei VBA yn Excel (2 metoaden)
  • FindNext mei help fan VBA yn Excel (2 foarbylden)
  • Hoe kin ik string fine mei VBA yn Excel (8 foarbylden)
  • VBA Fyn lêste rige yn Excel (5 manieren)

Metoade-5: Kontrolearje in bepaalde substring yn in tekenrige yn in berik fan gegevens

Stel, jo wolle Passearje of Fail to correspond skriuwe mei de nammen fan 'e learlingen ôfhinklik fan 'e Resultaatkolom dêr't Slagt of Mislearre yn in heak skreaun is. Om dizze substring te finen yn de Resultaatkolom en skriuw it op yn de Pass or fail kolom folgje dizze metoade.

Stap-01 :

➤Folgje Stap-01 fan Metoade-1

7223

Hjir is it selberik C5: C10 dat is de Resultaat kolom

InStr (cell.value, "Pass") & GT; 0 is de betingst wêryn it getal grutter is as nul (as de sel "Pass" befettet)  dan sil de folgjende rigel trochgean en de útfier yn 'e neistlizzende sel jaan as Passed .

As de betingst falsk wurdt, betsjut dat in sel gjin "Pass" befettet, dan sil de rigel ûnder Anders útfiere en de útfierwearde jaan yn 'e neistlizzende sel as Failed .

Dizze lus sil trochgean foar elke sel.

➤Druk op F5

Resultaat :

Dan krije jo de folgjende útgongen yn 'e Pass or fail kolom.

Metoade-6: Kontrolearje fan in bepaalde substring yn in tekenrige en ekstrahearje fan gegevens

Ik sil de manier sjen litte om de neamde studinten te finen Michael yn de Student Name kolom en ekstrahearje harren oerienkommende gegevens mei VBA yn dizze metoade.

Stap-01 :

➤Folgje Stap-01 fan Metoade-1

2870

Hjir haw ik
B100 as de Active Sheet Range , mar jo kinne elk berik brûke neffens jo gebrûk.

InStr(1, Range("B" & i), "Michael") > 0 is de betingst om te kontrolearjen oft de sel yn kolom B befettet Michael

Range("E" & icount & ":G" & icount) is it berik wêryn jo jo útfiergegevens wolle en Range("B" & i & ":D" & i).value sil de wearden jaan fan kolommen B oant D .

➤Druk op F5

Resultaat :

Dêrnei krije jo de folgjende ekstrahearre gegevens foar de learlingen mei de namme Michael .

Metoade-7: Substring sykje nei Word

As jo ​​de substring as wurd fine wolle, folje dan leech dizze metoade.

Stap-01 :

➤Folgje Stap-01 fan Metoade-1

7272

It sil kontrolearje oft de tekenrige befettet is en dan sil syn posysje jûn wurde

➤Druk op F5

Resultaat :

Dêrnei krije jo it folgjende berjochtfakje dat it wurd toant fûn yn posysje:6 (de posysje fan is ).

Jo kinne testendizze koade út foar in wurd dat net yn de tekenrige stiet.

➤Typ de folgjende koade

5921

➤Druk op F5

Resultaat :

Dêrnei krije jo it folgjende berjochtfakje dat it wurd net fûn toant.

Metoade-8: Instr en LEFT-funksje brûke

Hjir sil ik de manier útlizze om de posysje fan in substring yn in tekenrige te finen en de teksten foar dizze substring te ekstrahearjen mei VBA en de LEFT-funksje .

Stap-01 :

➤Folgje Stap-01 fan Metoade-1

1644

j = InStr(txt, "is") is de posysje fan de substring is en Left(txt, j - 1) sil de substrings ekstrahearje foar is .

➤Druk op F5

Resultaat :

Nei ôfrin krije jo it folgjende berjochtfakje dat Hjir toant (substring foar is ).

Metoade-9: Bolding in bepaalde substring yn in tekenrige

Jo kinne de sifers foar heakjes fet fet yn 'e Resultaatkolom troch dizze metoade te folgjen d.

Stap-01 :

➤Folgje Stap-01 fan Metoade- 1

1784

txt = InStr(1, Cell, "(") sil de posysje fan de earste beugel werombringe en Cell.Characters(1, txt - 1).Font.Bold sil de substring meitsje foar de earste beugel Fet .

Stap-02 :

➤Selektearje de kolom Resultaat

➤Gean nei Untwikkelder Tab>> Makro's Opsje

Dan, in Makro wizard sil ferskine.

➤Selektearje Boldingsubstring (de VBA-koadenamme) en dan Utfiere .

Resultaat :

Dêrnei wurde de sifers yn de Resultaat Kolom fet fette.

Oefeningsdiel

Om sels te oefenjen hawwe wy in Oefenje -seksje levere lykas hjirûnder yn in blêd mei de namme Oefenje . Doch it asjebleaft sels.

Konklúzje

Yn dit artikel besocht ik de maklikste manieren te dekken om substring te finen mei VBA yn Excel effektyf. Hoopje dat jo it nuttich fine. As jo ​​suggestjes of fragen hawwe, diel se dan frij mei ús.

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.