Hoe om substring te vind met VBA (9 maniere)

  • Deel Dit
Hugh West

As jy op soek is na 'n paar van die maklikste maniere om substring met behulp van VBA te vind, dan is jy op die regte plek. Nadat u hierdie artikel deurgegaan het, sal u die posisie van 'n substring kan vind of data kan onttrek deur hierdie substring te gebruik of die formaat van 'n substring maklik kan verander. Kom ons gaan by die artikel in.

Laai werkboek af

Voorbeeldinhoud

9 maniere om substring te vind met VBA

Hier het ek die volgende datatabel waardeur ek die maniere sal wys om substring in 'n string te vind met behulp van VBA. Ek sal ook probeer om die maniere te wys om substring in 'n ewekansige string te vind.

Ek het hierdie taak uitgevoer met Microsoft Excel 365 weergawe, jy kan enige ander weergawe gebruik volgens jou gerief.

Metode-1: Soek substring in 'n string met behulp van VBA

As jy jou gewenste substring in 'n string wil vind met VBA, kan jy die InStr-funksie in die VBA-kode.

Stap-01 :

➤Gaan na Ontwikkelaar Tab>> Visual Basic Opsie

Dan sal die Visual Basic Editor oopmaak.

➤Gaan na Voeg Tab>> Module Opsie

Daarna sal 'n Module geskep word.

Stap-02 :

➤Skryf die volgende kode

6268

Hier, InStr(1, “ Ek dink daarom is ek”, “dink”) sal die posisie van die substring van 'n string terugstuur. 1 is diebeginposisie, " Ek dink daarom is ek" is die string waar jy jou verlangde substring sal vind, en "dink" is die substring wat jy wil vind. Dit is by verstek hooflettergevoelig so pasop vir die hoofletters van jou substring wat jy wil soek.

➤Druk F5

Resultaat :

Daarna sal jy die volgende Boodskapkas kry wat die posisie van die "dink" substring bevat.

Metode-2: Vind hoofletteronsensitiewe substring in 'n string

As jy jou gewenste substring in 'n string wil vind, ongeag die geval met behulp van VBA, volg dan hierdie metode.

Stap-01 :

➤Volg Stap-01 van Metode-1

8208

Hier word vbTextCompare gebruik om hoofletter-onsensitiewe substring te vind.

➤Druk F5

Resultaat :

Dan kry jy die volgende Boodskapkas wat die posisie van die "dink" substring bevat.

Jy kan dieselfde doen deur die volgende kode te gebruik.

3000

Hier sal Opsie Vergelyk teks hoofletter-onsensitiewe substring vind.

➤Druk F5

Resultaat :

Daarna sal jy Ek kry die volgende Boodskapkassie wat die posisie van die "dink" substring bevat.

Metode-3: Gebruik InstrRev-funksie in VBA

Hier sal ek die manier wys om 'n substring vanaf die einde van a te vindstring.

Stap-01 :

➤Volg Stap-01 van Metode-1

9484

InStrRev sal die substring van die regterkant in plaas van die linkerkant vind.

➤Druk F5

Resultaat :

Dan kry jy die volgende Boodskapkas wat die posisie van die tweede “I” substring van die regterkant.

Metode-4: Vind die posisie van substring in 'n string in 'n reeks data

As jy die spesiale karakter wil vind “@” in die E-pos-ID , volg dan hierdie metode. Ek het die Posisiekolom vir hierdie doel hier bygevoeg.

Stap-01 :

➤Volg Stap-01 van Metode-1

6789

Dit sal 'n funksie met die naam FindSubstring skep (jy kan enige ander naam gebruik)

waarde is die selverwysing wat die string bevat en dit word verklaar as Reikwydte .

Stap -02 :

➤Kies die afvoer Sel E5

➤Tik die volgende funksie (geskep deur VBA )

=FindSubstring(D5)

D5 is die sel wat die string bevat.

➤Druk ENTER

➤Sleep die Vulhandvatsel nutsding

Resultaat :

Daarna sal jy die posisies van die spesiale karakter @” in die E-pos-ID kry.

Soortgelyke lesings:

  • Hoe om te vindString in 'n sel met behulp van VBA in Excel (2 metodes)
  • FindNext met behulp van VBA in Excel (2 voorbeelde)
  • Hoe om string te vind met VBA in Excel (8 voorbeelde)
  • VBA Soek laaste ry in Excel (5 maniere)

Metode-5: Kontroleer 'n sekere substring in 'n String in 'n reeks data

Gestel, jy wil Slaag of Misluk om ooreen met die name van die studente skryf, afhangende van die Resultaat-kolom waar Slaag of Druip tussen 'n hakie geskryf is. Om hierdie substring in die Resultaatkolom te vind en dit in die Slaag of druip-kolom neer te skryf, volg hierdie metode.

Stap-01 :

➤Volg Stap-01 van Metode-1

9877

Hier is die selreeks C5:C10 wat die Resultaatkolom is

InStr(cell.value, “Pass”) > 0 is die toestand waar die getal groter as nul is (wanneer die sel “Slaag” bevat)  dan sal die volgende reël voortgaan en die uitvoer in die aangrensende sel gee as Geslaag .

As die voorwaarde vals word, beteken 'n sel nie enige “Slaag” bevat nie, dan sal die reël onder Anders uitvoer en die uitvoerwaarde in die aangrensende sel as Misluk .

Hierdie lus sal vir elke sel voortgaan.

➤Druk F5

Resultaat :

Dan sal jy die volgende uitsette kry in die Slaag of druip kolom.

Metode-6: Kontroleer 'n sekere substring in 'n string en onttrek data

Ek sal die manier wys om die studente met die naam te vind Michael in die Student Name kolom en onttrek hul ooreenstemmende data deur VBA in hierdie metode te gebruik.

Stap-01 :

➤Volg Stap-01 van Metode-1

4459

Hier het ek B100 as die Active Sheet Range maar jy kan enige reeks volgens jou gebruik gebruik.

InStr(1, Range("B" & i), "Michael") > 0 is die voorwaarde om te kontroleer of die sel in kolom B bevat Michael

Range("E" & icount & ":G" & icount) is die reeks waar jy jou uitsetdata wil hê en Range("B" & i & ":D" & i).value sal die waardes gee van kolomme B na D .

➤Druk F5

Resultaat :

Daarna sal jy die volgende onttrekte data kry vir die studente met die naam Michael .

Metode-7: Soek substring vir woord

As jy die substring as 'n woord wil vind, volg dan laer hierdie metode.

Stap-01 :

➤Volg Stap-01 van Metode-1

3467

Dit sal kyk of die string is bevat en dan sal sy posisie gegee word

➤Druk F5

Resultaat :

Daarna sal jy die volgende boodskapblokkie kry wat die woord wat in posisie gevind word:6 (die posisie van <11) wys>is ).

Jy kan toetsuit hierdie kode vir 'n woord wat nie in die string is nie.

➤Tik die volgende kode

4509

➤Druk F5

Resultaat :

Daarna sal jy die volgende boodskapblokkie kry wat die woord nie gevind nie wys.

Metode-8: Gebruik Instr en LEFT funksie

Hier sal ek die manier verduidelik om die posisie van 'n substring in 'n string te vind en die tekste voor hierdie substring te onttrek deur te gebruik VBA en die LINKER-funksie .

Stap-01 :

➤Volg Stap-01 van Metode-1

1587

j = InStr(txt, "is") is die posisie van die substring is en Left(txt, j - 1) sal die substringe onttrek voor is .

➤Druk F5

Resultaat :

Daarna sal jy die volgende boodskapkassie kry wat Hier wys (substring voor is ).

Metode-9: Vetdruk 'n Sekere substring in 'n string

Jy kan die grade voor hakies in die Resultaatkolom vetdruk maak deur hierdie metode te volg d.

Stap-01 :

➤Volg Stap-01 van Metode- 1

7395

txt = InStr(1, Cell, "(") sal die posisie van die eerste hakie terugstuur en Cell.Characters(1, txt - 1).Font.Bold sal die substring voor die eerste hakie Vetdruk maak.

Stap-02 :

➤Kies die Resultaatkolom

➤Gaan na Ontwikkelaar Tab>> Makro's Opsie

Dan, 'n Makro towenaar sal verskyn.

➤Kies Boldingsubstring (die VBA-kodenaam) en dan Run .

Resultaat :

Daarna sal die punte in die Resultaat Kolom vetgedruk word.

Oefenafdeling

Om self oefening te doen, het ons 'n Oefenafdeling -afdeling soos hieronder in 'n blad met die naam Oefening voorsien. Doen dit asseblief self.

Gevolgtrekking

In hierdie artikel het ek probeer om die maklikste maniere te dek om substring te vind met VBA effektief in Excel. Hoop jy sal dit nuttig vind. As jy enige voorstelle of vrae het, deel dit gerus met ons.

Hugh West is 'n hoogs ervare Excel-afrigter en ontleder met meer as 10 jaar ondervinding in die bedryf. Hy het 'n Baccalaureusgraad in Rekeningkunde en Finansies en 'n Meestersgraad in Besigheidsadministrasie. Hugh het 'n passie vir onderrig en het 'n unieke onderrigbenadering ontwikkel wat maklik is om te volg en te verstaan. Sy kundige kennis van Excel het duisende studente en professionele persone wêreldwyd gehelp om hul vaardighede te verbeter en uit te blink in hul loopbane. Deur sy blog deel Hugh sy kennis met die wêreld, en bied gratis Excel-tutoriale en aanlyn opleiding aan om individue en besighede te help om hul volle potensiaal te bereik.