Com trobar subcadenes amb VBA (9 maneres)

  • Comparteix Això
Hugh West

Si esteu buscant algunes de les maneres més fàcils de trobar subcadenes mitjançant VBA, sou al lloc correcte. Després de revisar aquest article, podreu trobar la posició d'una subcadena o extreure dades mitjançant aquesta subcadena o canviar el format d'una subcadena fàcilment. Entrem en l'article.

Baixeu el llibre de treball

Contingut de mostra

9 maneres de trobar subcadenes mitjançant VBA

Aquí tinc el següent taula de dades amb la qual mostraré les maneres de trobar subcadenes en una cadena mitjançant VBA. També intentaré mostrar les maneres de trobar subcadenes en una cadena aleatòria.

He realitzat aquesta tasca utilitzant la versió Microsoft Excel 365 , podeu utilitzar qualsevol altra versió segons la vostra conveniència.

Mètode 1: trobar subcadenes en una cadena amb VBA

Si voleu trobar la subcadena desitjada en una cadena amb VBA, podeu utilitzar la funció InStr al codi VBA.

Pas-01 :

➤Vés a Desenvolupador Tab>> Opció Visual Basic

A continuació, s'obrirà l' Editor de Visual Basic .

➤Vés a Insereix Tab>> Mòdul Opció

Després, es crearà un Mòdul .

Pas-02 :

➤Escriu el codi següent

4317

Aquí, InStr(1, “ Crec que, per tant, sóc”, “pensa”) retornarà la posició de la subcadena d'una cadena. 1 és elposició inicial, " Crec que, per tant, sóc" és la cadena on trobareu la subcadena desitjada i "pensa" és la subcadena que voleu trobar. De manera predeterminada, distingeix entre majúscules i minúscules, així que vés amb compte amb les majúscules i minúscules de la subcadena que vols cercar.

➤Premeu F5

Resultat :

Després d'això, obtindreu el següent Quadre de missatge que conté la posició de la subcadena “pensa” .

Mètode 2: trobar una subcadena que no distingeix entre majúscules i minúscules en una cadena

Si voleu trobar la subcadena desitjada en una cadena, independentment del cas usant VBA, seguiu això mètode.

Pas-01 :

➤Seguiu Pas-01 de Mètode-1

1452

Aquí, vbTextCompare s'utilitza per trobar una subcadena que no distingeix entre majúscules i minúscules.

➤Premeu F5

Resultat :

A continuació, obtindreu el següent Quadre de missatge que conté la posició de la subcadena “pensa” .

Podeu fer el mateix utilitzant el codi següent.

4917

Aquí, Opció de comparació de text trobarà una subcadena que no distingeix entre majúscules i minúscules.

➤Premeu F5

Resultat :

Després, Obtindré el següent Quadre de missatges que conté la posició de la subcadena “think” .

Mètode-3: Ús de la funció InstrRev a VBA

Aquí, mostraré la manera de trobar una subcadena des del final de acadena.

Pas-01 :

➤Seguiu Pas-01 de Mètode-1

5786

InStrRev trobarà la subcadena del costat dret en lloc del costat esquerre.

➤Premeu F5

Resultat :

A continuació, obtindreu el següent Quadre de missatge que conté la posició de la segona subcadena “I” de la costat dret.

Mètode-4: trobar la posició de la subcadena en una cadena en un rang de dades

Si voleu trobar el caràcter especial “@” a l' Id del correu electrònic i, a continuació, seguiu aquest mètode. He afegit aquí la Columna de posició per a aquest propòsit.

Pas-01 :

➤Follow Pas-01 de Mètode-1

7427

Crearà una funció anomenada FindSubstring (podeu utilitzar qualsevol altre nom)

valor és la referència de cel·la que conté la cadena i es declara com a Rang .

Pas -02 :

➤Seleccioneu la sortida Cel·la E5

➤Escriviu la funció següent (creada per VBA )

=FindSubstring(D5)

D5 és la cel·la que conté la cadena.

➤Premeu ENTER

➤ Arrossegueu cap avall l' Eina d'emplenament

Resultat :

Després, obtindreu les posicions del caràcter especial @” a l' Id del correu electrònic .

Lectures similars:

  • Com trobarCadena en una cel·la utilitzant VBA a Excel (2 mètodes)
  • FindNext utilitzant VBA a Excel (2 exemples)
  • Com trobar cadena amb VBA a Excel (8 exemples)
  • VBA Troba l'última fila a Excel (5 maneres)

Mètode 5: comprovació d'una determinada subcadena a una cadena en un rang de dades

Suposem que voleu escriure Aprovat o No es correspondrà als noms dels estudiants en funció de la columna Resultat on s'ha escrit Aprovat o No entre parèntesis. Per trobar aquesta subcadena a la columna Resultat i anotar-la a la Columna Aprovat o no seguiu aquest mètode.

Pas-01 :

➤Seguiu Pas-01 de Mètode-1

5809

Aquí, l'interval de cel·les és C5:C10 que és la Columna del resultat

InStr(cell.value, “Passa”) > 0 és la condició en què el nombre és més gran que zero (quan la cel·la conté "Aprovat" ), la línia següent continuarà i donarà la sortida a la cel·la adjacent com a Aprovat .

Si la condició esdevé falsa significa que una cel·la no conté cap “Passa” , la línia sota Else s'executarà i donarà el valor de sortida a la cel·la adjacent com a Error .

Aquest bucle continuarà per a cada cel·la.

➤Premeu F5

Resultat :

A continuació, obtindreu les següents sortides a Aprovat o no columna.

Mètode 6: Comprovar una determinada subcadena en una cadena i extreure dades

Mostraré la manera de trobar els estudiants anomenats Michael a la columna Nom de l'estudiant i extreu les dades corresponents mitjançant VBA en aquest mètode.

Pas-01 :

➤Seguiu Pas-01 de Mètode-1

1739

Aquí, he utilitzat B100 com a Interval de full actiu , però podeu utilitzar qualsevol interval segons el vostre ús.

InStr(1, Range("B" & i), "Michael") > 0 és la condició per comprovar si la cel·la a la columna B conté Michael

Range("E" & icount & ":G" & icount) és l'interval on voleu les vostres dades de sortida i Range("B" & i & ":D" & i).value donarà els valors de les columnes B a D .

➤Premeu F5

Resultat :

Després d'això, obtindreu les següents dades extretes per als estudiants que tenen el nom Michael .

Mètode 7: cercar una subcadena per a la paraula

Si voleu trobar la subcadena com a paraula, baix aquest mètode.

Pas-01 :

➤Seguiu el Pas-01 de Mètode-1

9672

Comprovarà si la cadena conté és i després es donarà la seva posició

➤Premeu F5

Resultat :

Després, obtindreu el quadre de missatge següent que mostra la paraula que es troba a la posició:6 (la posició de és ).

Pots provartraieu aquest codi per a una paraula que no estigui a la cadena.

➤Escriviu el codi següent

4712

➤Premeu F5

Resultat :

Després, obtindreu el quadre de missatge següent que mostra la paraula no trobada .

Mètode 8: utilitzant la funció Instr i LEFT

Aquí, explicaré la manera de trobar la posició d'una subcadena en una cadena i extreure els textos abans d'aquesta subcadena utilitzant VBA i la funció ESQUERRA .

Pas-01 :

➤Seguiu Pas-01 de Mètode-1

2542

j = InStr(txt, "is") és la posició de la subcadena és i Left(txt, j - 1) extreurà les subcadenes abans de és .

➤Premeu F5

Resultat :

Després, obtindreu el quadre de missatge següent que mostra Aquí (la subcadena abans de és ).

Mètode 9: negreta una determinada subcadena en una cadena

Podeu posar en negreta les qualificacions abans dels claudàtors a la columna del resultat seguint aquest mètode d.

Pas-01 :

➤Seguiu Pas-01 de Mètode- 1

9622

txt = InStr(1, Cell, "(") retornarà la posició del primer claudàtor i Cell.Characters(1, txt - 1).Font.Bold farà la subcadena abans del primer claudàtor Negreta .

Pas-02 :

➤Seleccioneu la Columna de resultats

➤Vés a Desenvolupador Tab>> Macros Opció

A continuació, una MacroApareixerà l'assistent .

➤Seleccioneu Boldingsubstring (el nom del codi VBA) i després Executa .

Resultat :

Després, les qualificacions de la Resultat Columna es posaran en negreta.

Secció de pràctica

Per fer la pràctica per tu mateix, hem proporcionat una secció Pràctica com a continuació en un full anomenat Pràctica . Si us plau, fes-ho tu mateix.

Conclusió

En aquest article, he intentat cobrir les maneres més fàcils de trobar subcadenes mitjançant VBA en Excel de manera efectiva. Espero que us sigui útil. Si teniu suggeriments o preguntes, no dubteu a compartir-los amb nosaltres.

Hugh West és un entrenador i analista d'Excel molt experimentat amb més de 10 anys d'experiència en el sector. És llicenciat en Comptabilitat i Finances i Màster en Administració i Direcció d'Empreses. Hugh té una passió per l'ensenyament i ha desenvolupat un enfocament pedagògic únic que és fàcil de seguir i entendre. El seu coneixement expert d'Excel ha ajudat a milers d'estudiants i professionals de tot el món a millorar les seves habilitats i a destacar en les seves carreres. A través del seu bloc, Hugh comparteix els seus coneixements amb el món, oferint tutorials d'Excel gratuïts i formació en línia per ajudar les persones i les empreses a assolir tot el seu potencial.