VBA Substituir String - Como substituir texto em string usando o VBA?

String de substituição do Excel VBA

Substituir é a função de planilha e também a função de VBA. Esta função nos ajuda a substituir a palavra específica da string por outra string. Funciona de forma semelhante à função Substitute no VBA.

Ao lidar com string de teste ou valores de dados de texto, é uma coisa óbvia substituir ou substituir algo por outra coisa, juntando os dados de duas células em um ou dividindo os dados de uma célula em várias coisas. Todas essas são tarefas comuns que realizamos no dia a dia em nosso local de trabalho.

Então, como podemos substituir uma palavra na string por outra palavra? Por exemplo, se a string for “Índia é um país em desenvolvimento e a Índia é um país asiático” dessa string, precisamos substituir a palavra “Índia” e mudar para “Bharath”.

Isso é possível usando a função Substituir. Neste artigo, mostraremos como substituir strings na codificação VBA.

Substituir Função

  • Expressão: Isso nada mais é do que o valor da string original a partir do qual estamos tentando substituir algo por algo. Por exemplo, abaixo está a string de expressão - “A Índia é um país em desenvolvimento e a Índia é um país asiático”.
  • Find String: Qual é a string que estamos tentando substituir. Por exemplo, na string de expressão , estamos tentando substituir a palavra “Índia”.
  • Substituir String: Qual é a string substituta que substituímos o Find String ? Portanto, neste caso, estamos tentando substituir a palavra "Índia" por "Bharath".
  • (Iniciar): Este é um parâmetro opcional. Na string acima (Expression), temos duas palavras, “Índia”, portanto, a partir de qual posição da String Find, precisamos iniciar o processo de substituição. Por exemplo, se dissermos 2, ele começará a substituir a palavra “Índia” da segunda posição em diante.
  • (Contagem): Se Find String aparecer várias vezes na Expression, quantas palavras precisamos substituir.

Por exemplo, se a palavra “Índia” aparecer 5 vezes e você fornecer a contagem como 3, ela substituirá apenas as 3 primeiras palavras da “Índia”.

Como substituir texto em string usando o VBA?

Exemplo 1

Agora, tentaremos substituir a palavra “Índia” por “Bharath” do valor da string abaixo.

“A Índia é um país em desenvolvimento e a Índia é um país asiático.”

Primeiro, inicie o procedimento de macro do Excel agora.

Código:

Sub Replace_Example () End Sub

Defina a variável VBA como String.

Código:

Sub Replace_Example () Dim NewString As String End Sub

Nesta variável, mostraremos um novo valor de string após substituir a palavra “Índia” por “Bharath”. Para esta variável, abra a função Substituir.

O primeiro argumento dessa função é "Expressão", ou seja, de qual string estamos tentando substituir uma palavra, então copie e cole a string "A Índia é um país em desenvolvimento e a Índia é um país asiático".

O próximo argumento é “Find String”, ou seja, qual palavra precisamos substituir, ou seja, “India”.

O próximo argumento é "Substituir String", ou seja, com qual string precisamos substituir a palavra "Índia", ou seja, "Bharath".

Ok, a partir de agora, ignore os argumentos restantes. Agora mostre o resultado na caixa de mensagem.

Código:

Sub Replace_Example () Dim NewString As String NewString = Replace ("Índia é um país em desenvolvimento e a Índia é o país asiático", "Índia", "Bharath") MsgBox NewString End Sub

Vamos executar o código usando a tecla F5 ou manualmente e ver o novo resultado da string.

Ok, olhe para o resultado acima. Onde quer que tenhamos a palavra "Índia", ela foi substituída pela palavra "Bharath".

Exemplo # 2

Agora veremos como usar o mesmo código com variáveis. Olhe o código abaixo.

Código:

Sub Replace_Example1 () Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "Índia é um país em desenvolvimento e Índia é o país asiático" FindString = "Índia" ReplaceString = "Bharath" NewString = Substituir (MyString , FindString, ReplaceString) MsgBox NewString End Sub

No código acima, declarei três variáveis ​​extras.

Dim MyString As String Dim FindString As String Dim ReplaceString As String

Para essas variáveis, atribuí valores. Em vez de fornecer Expression String, Find String e Replace String, forneceremos apenas variáveis ​​para a função Replace.

Este código também dá o mesmo resultado, mas a única diferença é que usamos variáveis ​​em vez de fornecimento direto de valores para a função.

Exemplo # 3

Assume you want to replace the word “India” only from the second position, then we need to use the Replace function parameter (“Start”). Look at the below code for your information.

Code:

Sub Replace_Example2() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Start:=34) MsgBox NewString End Sub

Only one extra thing we have added from the previous code is the “Start” parameter as 34. Now run the code and see the result.

Now we can see only string after the 34th character of the string with “India” replacing with “Bharath.”

Example #4

Now for an example, if we want to replace only the first occurrence of the word “India” with “Bharath,” then we need to use the (“Count”) parameter of the Replace function.

Below is the code for you.

Code:

Sub Replace_Example3() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Count:=1) MsgBox NewString End Sub

Run the code manually or through the F5 key and see the result.

As you can see above, it has replaced only the first occurrence of the word “India” to “Bharath,” and the second instance remains the same.

Things to Remember Here

  • Substituir é uma família de funções de string no VBA.
  • No VBA, a função de substituição substitui todas as palavras fornecidas por string substituída se o parâmetro de contagem não for especificado.
  • O parâmetro de início excluirá o número de caracteres fornecidos e mostrará o resultado restante.

Artigos interessantes...