Taula de continguts
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.