VBA Substituir String

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 strings de teste ou valores de dados de texto, é uma coisa óbvia substituir ou substituir algo por outro, 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 fazemos 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 “A Índia é um país em desenvolvimento e a Índia é um país asiático”, a partir 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. Para um 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 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”, então 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.
  • [Contar]: Se o Find String aparecer várias vezes na Expressão, então quantas palavras precisamos substituir.

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

Como substituir texto em string usando o VBA?

Você pode baixar este modelo de substituição de string do VBA aqui - modelo do Excel de substituição de string do 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 o novo valor da string após substituir a palavra “Índia” por “Bharath”. Para esta variável, abra a função Substituir.

O primeiro argumento desta função é “Expressão”, isto é, de qual string estamos tentando substituir uma palavra, então copie e cole a string “Índia é um país em desenvolvimento e Í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 = "A Índia é um país em desenvolvimento e a Í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

Suponha que você deseja substituir a palavra “Índia” apenas na segunda posição, então precisamos usar o parâmetro da função Substituir [“Iniciar”]. Veja o código abaixo para sua informação.

Código:

 Sub Replace_Example2 () 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, Start: = 34) MsgBox NewString End Sub 

Apenas uma coisa extra que adicionamos do código anterior é o parâmetro “Iniciar” como 34. Agora execute o código e veja o resultado.

Agora podemos ver apenas a string após o 34º caractere da string com “Índia” substituindo por “Bharath”.

Exemplo # 4

Agora, por exemplo, se quisermos substituir apenas a primeira ocorrência da palavra “Índia” por “Bharath”, então precisamos usar o parâmetro [“Contagem”] da função Substituir.

Abaixo está o código para você.

Código:

 Sub Replace_Example3 () 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, Count: = 1) MsgBox NewString End Sub 

Execute o código manualmente ou por meio da tecla F5 e veja o resultado.

Como você pode ver acima, ele substituiu apenas a primeira ocorrência da palavra “Índia” por “Bharath” e a segunda ocorrência permanece a mesma.

Coisas para lembrar aqui

  • 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 inicial excluirá o número de caracteres fornecidos e mostrará o resultado restante.