Como retornar todas as correspondências de um texto inserido com um padrão regex no Excel

Como retornar todas as correspondências de um texto inserido com um padrão regex no Excel

dezembro 30, 2022 0 Por Como Posso?

Graças ao Visual Basic você pode facilitar seu tempo de trabalho no Excel, já que através deste programa você pode  criar macros e funções personalizadas. Com as mesmas macros, você pode importar nomes de arquivos ou copiar dados de uma planilha para outra.

Qual é a função do padrão de expressão regular que se encarregará de retornar todas as correspondências de um texto?

O primeiro passo é criar o objeto de expressão regular como uma função chamada “Matches” na qual, por meio de parâmetros, será encontrado um valor na célula em que a pessoa escreveu.

O objetivo através de um código de macro, este retorna uma mensagem com as correspondências encontradas no texto separadas por uma disjunção.

Codificação para criar o padrão da função

É claro que ficou estabelecido que o padrão de expressão regular que se criará a seguir é uma função que se encarregará de validar os textos inseridos na planilha.

Acesse a aba “ Desenvolvedor ” e clique em “ Visual Basic ” para criar um primeiro “ Módulo ” que conterá o código da função.

Você vai começar definindo o início da função, colocando o nome das correspondências e entre parênteses você deve colocar os parâmetros de valor do texto inserido na célula como uma string.

Correspondências de função pública (célula ByVal como String)

lupa acima das barras

Uma vez feito isso, você pode começar a escrever o objeto de expressão regular que irá definir o padrão de análise, dando a ele o nome (SS) que você quiser.

Definir SS = CreateObject (“VBScript.RegExp”)

Inicie uma variável que você nomeará como texto para estabelecer todas as correspondências que serão encontradas ao executar a macro , que será do tipo string e será iniciada em 0.

Dim text as String

Texto = “”

Em seguida, ele estabelece as propriedades da expressão regular, onde todos serão colocados como verdadeiros e o padrão serão as letras de a a z acompanhadas do símbolo de mais+ ” para também analisar qualquer outro texto dentro da string.

Com SS

.Global = True

.Multiline = True

.IgnoreCase = True

.Padrão = ”[az] +”

Terminar com

Se houver correspondência no texto, deve-se extraí-la com execute , ou então exibirá uma mensagem informando que nada foi encontrado.

Saiba +  Como redimensionar uma matriz ou vetor dinâmico no Excel - passo a passo

No caso de encontrar conteúdo, você deve definir uma variável que nomeará como encontrada para colocar o valor da célula correspondente.

Deve-se notar que cada correspondência encontrada será percorrida com uma variável auxiliar determinada neste exemplo como ” x ” em uma estrutura ” Para cada “.

Se SS.test (célula) Então

Definir encontrado = SS.Executar (célula)

Para cada x In encontrado

Aux = x

Se text = ”” Então

Texto = aux

Senão

Texto = texto + ”| “+ Aux

Fim se

Próximo x

Por fim, atribui que o valor do objeto da expressão regular é o texto que será inserido na célula ou estabelece a mensagem se nenhuma correspondência for encontrada, para encerrar a função.

ícone verde do excel

 

Matches = text

Senão

Correspondências = ”Nenhuma correspondência encontrada”

Fim se

Função Final

Código de resultado

Para retornar todas as correspondências de um texto, um novo ” Módulo ” é criado para estabelecer um código que mostrará o resultado da análise do conteúdo da célula, funcionando de acordo com o padrão criado anteriormente.

Para isso, duas variáveis ​​chamadas valor e string do tipo string serão adicionadas às quais os valores da função serão atribuídos.

Sub correspondências ()

Valor dim, string como string

Value = ActiveCell.Value

String = corresponde (valor)

String MsgBox

End Sub

Desta forma, a função e a macro foram concluídas, que você pode testar adicionando conteúdo a uma célula com diferentes símbolos e acessando o botão ” Macros ” para pressionar ” Executar ” na função.

Concluirá exibindo uma janela com as correspondências que estão dentro dos parâmetros estabelecidos, separadas umas das outras pelo símbolo de disjunção.

Se você trabalha com este programa, pode obter um erro em algum ponto , mas isso é fácil de resolver.