INHOUDSOPGAWE
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
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.