Táboa de contidos
Se estás a buscar algunhas das formas máis sinxelas de atopar subcadeas usando VBA, estás no lugar correcto. Despois de pasar por este artigo, poderás atopar a posición dunha subcadea ou extraer datos usando esta subcadea ou cambiar o formato dunha subcadea facilmente. Imos entrar no artigo.
Descargar libro de traballo
Contido de mostra
9 xeitos de atopar subcadeas usando VBA
Aquí teño o seguinte táboa de datos mediante a cal mostrarei as formas de atopar subcadeas nunha cadea usando VBA. Tamén tentarei mostrar as formas de atopar subcadeas nunha cadea aleatoria.
Realiza esta tarefa usando a versión Microsoft Excel 365 , podes usar calquera outra versión segundo a túa conveniencia.
Método 1: atopar subcadea nunha cadea usando VBA
Se queres atopar a subcadea desexada nunha cadea usando VBA, podes usar a función InStr no código VBA.
Paso-01 :
➤Vaia a Desenvolvedor Tab>> Opción Visual Basic
A continuación, abrirase o Editor de Visual Basic .
➤Vai a Inserir Tab>> Módulo Opción
Despois diso, crearase un Módulo .
Paso-02 :
➤Escriba o seguinte código
9598
Aquí, InStr(1, “ Creo que, polo tanto, estou”, “pensa”) devolverá a posición da subcadea dunha cadea. 1 é oposición inicial, " Creo que, polo tanto, estou" é a cadea onde atoparás a subcadea desexada e "pensa" é a subcadea que queres atopar. De forma predeterminada, distingue entre maiúsculas e minúsculas, así que teña coidado coas maiúsculas e minúsculas da subcadea que queres buscar.
➤Preme F5
Resultado :
Despois diso, obterá a seguinte Caixa de mensaxes que contén a posición da subcadea “think” .
Método 2: atopar unha subcadea que non distingue entre maiúsculas e minúsculas nunha cadea
Se queres atopar a subcadea desexada nunha cadea independentemente do caso usando VBA, siga isto método.
Paso-01 :
➤Siga Paso-01 de Método-1
3528
Aquí, vbTextCompare úsase para buscar subcadeas que non distinguen entre maiúsculas e minúsculas.
➤Preme F5
Resultado :
Entón, obterá a seguinte Caixa de mensaxes que contén a posición da subcadea “think” .
Podes facer o mesmo usando o seguinte código.
7741
Aquí, Opción de comparación de texto atopará unha subcadea que non distingue entre maiúsculas e minúsculas.
➤Prema F5
Resultado :
Despois, Obter a seguinte Caixa de mensaxes que contén a posición da subcadea “think” .
Método 3: Usando a función InstrRev en VBA
Aquí mostrarei o xeito de atopar unha subcadea desde o final de acadea.
Paso-01 :
➤Segue Paso-01 de Método-1
9725
InStrRev atopará a subcadea do lado dereito en lugar do esquerdo.
➤Preme F5
Resultado :
Entón, obterá a seguinte Caixa de mensaxes que contén a posición da segunda subcadea “I” do lado dereito.
Método-4: atopar a posición da subcadea nunha cadea nun intervalo de datos
Se queres atopar o carácter especial “@” no Identificación de correo electrónico e, a continuación, siga este método. Engadín aquí a Columna de posición para este fin.
Paso-01 :
➤Seguir Paso-01 de Método-1
8397
Creará unha función chamada FindSubstring (podes usar calquera outro nome)
valor é a referencia de cela que contén a cadea e declárase como Intervalo .
Paso -02 :
➤Seleccione a saída Cela E5
➤Escriba a seguinte función (creada por VBA )
=FindSubstring(D5)
D5 é a cela que contén a cadea.
➤Preme ENTER
➤Arrastre cara abaixo a Recheo da ferramenta Ferramenta
Resultado :
Despois, obterás as posicións do carácter especial “ @” no Id de correo electrónico .
Lecturas similares:
- Como atoparCadena nunha cela usando VBA en Excel (2 métodos)
- FindNext usando VBA en Excel (2 exemplos)
- Como atopar cadea con VBA en Excel (8 exemplos)
- VBA Buscar a última fila en Excel (5 formas)
Método 5: comprobando unha determinada subcadea en unha cadea nun intervalo de datos
Supoña que quere escribir Aprobado ou Non se corresponde cos nomes dos estudantes dependendo da columna Resultado onde se escribiu Pass ou Fall entre corchetes. Para atopar esta subcadea na columna do resultado e anótaa na columna de aprobación ou falla siga este método.
Paso-01 :
➤Siga o Paso-01 de Método-1
9382
Aquí, o intervalo de celas é C5:C10 que é a Columna do resultado
InStr(cell.value, “Pass”) > 0 é a condición na que o número é maior que cero (cando a cela contén “Aprobado” ) , a seguinte liña continuará e dará a saída na cela adxacente como Aprobado .
Se a condición se volve falsa significa que unha cela non contén ningún “Pass” , a liña debaixo de Else executarase e dará o valor de saída no cela adxacente como Fallo .
Este bucle continuará para cada cela.
➤Preme F5
Resultado :
Entón, obterá as seguintes saídas no Aceptar ou fallar columna.
Método 6: Comprobar unha determinada subcadea nunha cadea e extraer datos
Vou mostrar a forma de atopar os estudantes nomeados Michael na columna Nome do alumno e extrae os seus datos correspondentes mediante VBA neste método.
Paso-01 :
➤Siga Paso-01 de Método-1
6309
Aquí usei B100 como Intervalo da folla activa pero podes usar calquera intervalo segundo o teu uso.
InStr(1, Range("B" & i), "Michael") > 0
é a condición para comprobar se a cela a columna B contén Michael
Range("E" & icount & ":G" & icount)
é o intervalo no que desexa os seus datos de saída e Range("B" & i & ":D" & i).value
dará os valores das columnas B ata D .
➤Prema F5
Resultado :
Despois diso, obterá os seguintes datos extraídos para os estudantes que teñen o nome Michael .
Método 7: Buscando a subcadea para a palabra
Se queres atopar a subcadea como unha palabra, baixo este método.
Paso-01 :
➤Siga o Paso-01 de Método-1
5074
Comprobará se a cadea contén é e entón darase a súa posición
➤Preme F5
Resultado :
Despois, obterá a seguinte caixa de mensaxe que mostra a palabra atopada na posición:6 (a posición de é ).
Podes probarelimina este código para unha palabra que non estea na cadea.
➤Escriba o seguinte código
5473
➤Preme F5
Resultado :
Despois, aparecerá a seguinte caixa de mensaxe que mostra a palabra non atopada .
Método 8: Usando a función Instr e LEFT
Aquí explicarei a forma de atopar a posición dunha subcadea nunha cadea e extraer os textos antes desta subcadea usando VBA e a función ESQUERDA .
Paso-01 :
➤Siga o Paso-01 de Método-1
6936
j = InStr(txt, "is")
é a posición da subcadea é e Left(txt, j - 1)
extraerá as subcadeas antes de é .
➤Prema F5
Resultado :
Despois, recibirá a seguinte caixa de mensaxe que mostra Aquí (subcadea antes de é ).
Método 9: Negriña unha determinada subcadea nunha cadea
Podes poñer en negra as cualificacións antes dos corchetes na columna do resultado seguindo este método d.
Paso-01 :
➤Siga o Paso-01 de Método- 1
7290
txt = InStr(1, Cell, "(")
devolverá a posición do primeiro corchete e Cell.Characters(1, txt - 1).Font.Bold
fará a subcadea antes do primeiro corchete Negriña .
Paso-02 :
➤Seleccione a Columna do resultado
➤Ir a Desenvolvedor Tab>> Macros Opción
A continuación, unha MacroAparecerá o asistente.
➤Seleccione Boldingsubstring (o nome de código VBA) e despois Executar .
Resultado :
Despois diso, as cualificacións da Resultado Columna estarán en negra.
Sección de práctica
Para practicar vostede mesmo, proporcionamos unha sección Práctica como a continuación nunha folla chamada Práctica . Faino por ti mesmo.
Conclusión
Neste artigo tentei cubrir as formas máis sinxelas de atopar subcadeas usando VBA en Excel de forma eficaz. Espero que che resulte útil. Se tes algunha suxestión ou pregunta, non dubides en compartilas connosco.