Este tutorial demonstrará como usar curingas no VBA.
Os curingas são usados em todas as linguagens de programação e aplicativos de banco de dados, como o SQL Server. Um curinga pode ser definido como um símbolo usado para substituir um ou mais caracteres em uma sequência de texto. Por exemplo, esta sequência de texto - “mo *” - encontrará as palavras mãe, rato, alce, mamãe etc; enquanto esta string de texto "mo?" só encontrará a palavra mãe como curinga? substitui apenas um caractere.
Usamos curingas com o operador similar, que é uma alternativa mais fácil para o VBA Regex.
Usando o caractere curinga Asterix (*) no VBA
O curinga Asterix substitui um ou mais caracteres em uma string VBA.
Vejamos o seguinte intervalo de células no Excel:
Usando um caractere curinga Asterix em nosso código VBA, podemos encontrar todos os nomes que começam com “M” e alterar a cor do texto para vermelho.
12345678 | Sub CheckForM ()Dim x As IntegerPara x = 3 a 8Se Range ("B" e x). Valor como "M *" EntãoIntervalo ("B" e x) .Font.Color = vbRedFim sePróximo xEnd Sub |
Portanto, percorremos o intervalo e encontramos todos os primeiros nomes que começam com a letra M, pois nossa string curinga é “M *”
O resultado da execução do código acima é mostrado abaixo.
Se fôssemos usar a string curinga “Ma *” - então apenas os primeiros nomes em B3 e B4 mudariam.
Usando o caractere curinga de ponto de interrogação (?) No VBA
O ponto de interrogação substituirá um único caractere em uma string VBA.
Considere os seguintes dados:
Podemos usar a string curinga “? Im” para encontrar quaisquer nomes que terminem em “im”
12345678 | Sub CheckForIM ()Dim x As IntegerPara x = 3 a 8Se Range ("B" e x) .Value Like "? Im" ThenIntervalo ("B" e x) .Font.Color = vbRedFim sePróximo xEnd Sub |
O resultado da execução deste código é mostrado abaixo:
Usando [lista de caracteres] como curinga
O exemplo acima pode ser ligeiramente modificado para permitir o uso do ponto de interrogação, além de uma lista de caracteres permitidos. A string curinga pode, portanto, ser alterada para “? [E-i] m” onde o primeiro caractere pode ser qualquer coisa, o segundo caractere deve ser um caractere entre eei e a última letra deve ser o caractere “m”. Apenas 3 caracteres são permitidos.
12345678 | Sub CharListTest ()Dim x As IntegerPara x = 3 a 8Se Intervalo ("B" e x). Valor como "? [E-i] m" EntãoIntervalo ("B" e x) .Font.Color = vbRedFim sePróximo xEnd Sub |
O resultado desse código seria:
Programação VBA | O Code Generator funciona para você!
Usando o caractere curinga hash (#) no VBA
O caractere curinga hash (#) substitui um único dígito em uma string VBA. Podemos combinar entre 0 e 9.
12345678910 | Sub CheckForNumber ()Dim x As Integer, y As IntegerPara x = 3 a 8Para y = 2 a 5Se ActiveSheet.Cells (x, y) Like "##" EntãoActiveSheet.Cells (x, y) .Font.Color = vbRedFim seA seguirPróximo xEnd Sub |
O código acima percorrerá todas as células no intervalo (“B3: E8”) e mudará a cor do texto em uma célula para VERMELHO se um número de dois dígitos for encontrado nessa célula.
No exemplo abaixo, o código só mudará o número se o último número for um 9.
12345678910 | Sub CheckFor9 ()Dim x As Integer, y As IntegerPara x = 3 a 8Para y = 2 a 5Se ActiveSheet.Cells (x, y) Like "# 9" EntãoActiveSheet.Cells (x, y) .Font.Color = vbRedFim seA seguirPróximo xEnd Sub |