Hvordan finne delstreng ved hjelp av VBA (9 måter)

  • Dele Denne
Hugh West

Hvis du leter etter noen av de enkleste måtene å finne understreng ved hjelp av VBA, så er du på rett sted. Etter å ha gått gjennom denne artikkelen, vil du kunne finne posisjonen til en understreng eller trekke ut data ved å bruke denne understrengen eller enkelt endre formatet til en understreng. La oss gå inn i artikkelen.

Last ned arbeidsbok

Eksempelinnhold

9 måter å finne understreng ved å bruke VBA

Her har jeg følgende datatabell som jeg vil vise måter å finne delstreng i en streng ved å bruke VBA. Jeg vil også prøve å vise måter å finne understreng i en tilfeldig streng.

Jeg har utført denne oppgaven ved å bruke Microsoft Excel 365 -versjonen, du kan bruke hvilken som helst annen versjon etter eget ønske.

Metode-1: Finne delstreng i en streng ved hjelp av VBA

Hvis du vil finne ønsket delstreng i en streng ved hjelp av VBA, kan du bruke InStr-funksjonen i VBA-koden.

Trinn-01 :

➤Gå til Utvikler Tab>> Visual Basic Alternativ

Deretter åpnes Visual Basic Editor .

➤Gå til Sett inn Tab>> Modul Alternativ

Deretter vil en Modul bli opprettet.

Trinn-02 :

➤Skriv følgende kode

3521

Her, InStr(1, “ Jeg tror derfor jeg er”, “tenker”) vil returnere posisjonen til understrengen til en streng. 1 erstartposisjon, " Jeg tror derfor jeg er" er strengen der du vil finne ønsket delstreng, og "tenk" er delstrengen du vil finne. Det skiller mellom store og små bokstaver som standard, så pass opp for store og små bokstaver til understrengen du vil søke i.

➤Trykk F5

Resultat :

Etter det vil du få følgende meldingsboks som ​​inneholder posisjonen til "tenk" understrengen.

Metode-2: Finne store og små bokstaver ufølsomme understrenger i en streng

Hvis du vil finne ønsket understreng i en streng uavhengig av tilfelle ved hjelp av VBA, følg denne metode.

Trinn-01 :

➤Følg Trinn-01 av Metode-1

2444

Her brukes vbTextCompare for å finne delstreng som ikke skiller mellom store og små bokstaver.

➤Trykk F5

Resultat :

Deretter vil du få følgende meldingsboks som ​​inneholder posisjonen til "tenk" understrengen.

Du kan gjøre det samme ved å bruke følgende kode.

5714

Her vil Alternativ Sammenlign tekst finne understreng som ikke skiller mellom store og små bokstaver.

➤Trykk F5

Resultat :

Etterpå vil du Jeg får følgende Meldingsboks som ​​inneholder posisjonen til "tenk" understrengen.

Metode-3: Bruke InstrRev-funksjonen i VBA

Her vil jeg vise måten å finne en delstreng fra slutten av enstreng.

Trinn-01 :

➤Følg Trinn-01 av Metode-1

6763

InStrRev finner delstrengen fra høyre side i stedet for venstre side.

➤Trykk F5

Resultat :

Deretter vil du få følgende meldingsboks som ​​inneholder posisjonen til den andre "I" understrengen fra høyre side.

Metode-4: Finne posisjonen til delstrengen i en streng i et dataområde

Hvis du vil finne spesialtegnet “@” i E-post-ID , og følg deretter denne metoden. Jeg har her lagt til Posisjon-kolonnen for dette formålet.

Trinn-01 :

➤Følg Trinn-01 av Metode-1

8691

Det vil lage en funksjon kalt FinnSubstring (du kan bruke et hvilket som helst annet navn)

verdi er cellereferansen som inneholder strengen og den er erklært som Område .

Trinn -02 :

➤Velg utgangen Celle E5

➤Skriv inn følgende funksjon (opprettet av VBA )

=FindSubstring(D5)

D5 er cellen som inneholder strengen.

➤Trykk på ENTER

➤ Dra ned Fyllingshåndtaket verktøyet

Resultat :

Etterpå vil du få posisjonene til spesialtegnet @” i E-post-ID .

Lignende avlesninger:

  • Hvordan finneStreng i en celle ved hjelp av VBA i Excel (2 metoder)
  • FindNext ved å bruke VBA i Excel (2 eksempler)
  • Hvordan finne streng med VBA i Excel (8 eksempler)
  • VBA Finn siste rad i Excel (5 måter)

Metode-5: Sjekke en viss delstreng i en streng i et dataområde

Anta at du vil skrive Bestått eller Ikke korresponderer til navnene på elevene avhengig av Resultat-kolonnen der Bestått eller Ikke bestått er skrevet i parentes. For å finne denne understrengen i Resultatkolonnen og skriv den ned i kolonnen Bestått eller ikke bestått følg denne metoden.

Trinn-01 :

➤Følg Trinn-01 av Metode-1

7760

Her er celleområdet C5:C10 som er Resultatkolonnen

InStr(cell.value, “Pass”) > 0 er betingelsen der tallet er større enn null (når cellen inneholder “Pass” ) , vil følgende linje fortsette og gi utdata i den tilstøtende cellen som Bestått .

Hvis betingelsen blir usann betyr at en celle ikke inneholder noen “Pass” , vil linjen under Else utføres og gi utdataverdien i tilstøtende celle som Mislyktes .

Denne sløyfen vil fortsette for hver celle.

➤Trykk F5

Resultat :

Deretter vil du få følgende utganger i Bestått eller ikke bestått kolonne.

Metode-6: Kontrollere en bestemt delstreng i en streng og trekke ut data

Jeg vil vise veien for å finne de navngitte elevene Michael i Student Name-kolonnen og trekk ut deres tilsvarende data ved å bruke VBA i denne metoden.

Trinn-01 :

➤Følg Trinn-01 av Metode-1

7504

Her har jeg brukt B100 som Active Sheet Range , men du kan bruke et hvilket som helst område etter bruk.

InStr(1, Range("B" & i), "Michael") > 0 er betingelsen for å sjekke om cellen i kolonne B inneholder Michael

Range("E" & icount & ":G" & icount) er området der du vil ha utdataene dine og Range("B" & i & ":D" & i).value vil gi verdiene fra kolonner B til D .

➤Trykk F5

Resultat :

Etter det vil du få følgende uttrukket data for elevene som har navnet Michael .

Metode-7: Søke understreng etter ord

Hvis du vil finne understrengen som et ord, følg lav denne metoden.

Trinn-01 :

➤Følg Trinn-01 av Metode-1

7460

Den vil sjekke ut om strengen inneholder er og deretter vil dens posisjon bli gitt

➤Trykk F5

Resultat :

Etterpå vil du få følgende meldingsboks som viser ordet funnet i posisjon:6 (posisjonen til er ).

Du kan testeut denne koden for et ord som ikke er i strengen.

➤Skriv inn følgende kode

9725

➤Trykk F5

Resultat :

Etterpå vil du få følgende meldingsboks som viser ordet ikke funnet .

Metode-8: Bruke Instr og VENSTRE funksjon

Her vil jeg forklare måten å finne posisjonen til en delstreng i en streng og trekke ut tekstene før denne delstrengen ved å bruke VBA og VENSTRE-funksjonen .

Trinn-01 :

➤Følg Trinn-01 av Metode-1

8275

j = InStr(txt, "is") er posisjonen til delstrengen er og Left(txt, j - 1) vil trekke ut delstrengene før er .

➤Trykk på F5

Resultat :

Etterpå vil du få følgende meldingsboks som viser Her (delstreng før er ).

Metode-9: fet skrift en viss delstreng i en streng

Du kan utheve karakterene før parentes i Resultatkolonnen ved å følge denne metoden d.

Trinn-01 :

➤Følg Trinn-01 av Metode- 1

9398

txt = InStr(1, Cell, "(") vil returnere posisjonen til den første parentesen og Cell.Characters(1, txt - 1).Font.Bold vil gjøre delstrengen før den første parentesen Fet .

Trinn-02 :

➤Velg Resultatkolonnen

➤Go til Utvikler Tab>> Makroer Alternativ

Deretter en Makro veiviseren vises.

➤Velg Boldingsubstring (VBA-kodenavnet) og deretter Kjør .

Resultat :

Etter det vil karakterene i Resultat kolonnen være fet skrift.

Øvingsseksjonen

For å øve på egen hånd har vi gitt en Øvingsseksjonen som nedenfor i et ark kalt Øvning . Vennligst gjør det selv.

Konklusjon

I denne artikkelen prøvde jeg å dekke de enkleste måtene å finne delstreng ved å bruke VBA i Excel effektivt. Håper du finner det nyttig. Hvis du har forslag eller spørsmål, del dem gjerne med oss.

Hugh West er en svært erfaren Excel-trener og analytiker med over 10 års erfaring i bransjen. Han har en bachelorgrad i regnskap og finans og en mastergrad i bedriftsøkonomi. Hugh har en lidenskap for undervisning og har utviklet en unik undervisningstilnærming som er enkel å følge og forstå. Hans ekspertkunnskap om Excel har hjulpet tusenvis av studenter og fagfolk over hele verden med å forbedre sine ferdigheter og utmerke seg i karrieren. Gjennom bloggen sin deler Hugh sin kunnskap med verden, og tilbyr gratis Excel-opplæringer og nettbasert opplæring for å hjelpe enkeltpersoner og bedrifter å nå sitt fulle potensial.