Vba: como substituir caracteres em uma string


Você pode usar o método Replace() em VBA para substituir caracteres em uma string.

Este método usa a seguinte sintaxe básica:

Substituir(expressão, localizar, substituir, iniciar, contar)

Ouro:

  • expressão : a string na qual você deseja substituir os caracteres
  • find : A string a ser encontrada
  • replace : A string a ser usada como substituição
  • start ( opcional ) : A posição inicial na string a ser pesquisada
  • contagem ( opcional ) : O número de substituições a serem realizadas

Os exemplos a seguir mostram como usar esse método na prática com a seguinte lista de strings no Excel:

Exemplo 1: Use VBA para substituir todas as ocorrências de caracteres em uma string (diferencia maiúsculas de minúsculas)

Digamos que queremos substituir “this” por “THAT” em cada string.

Podemos criar a seguinte macro para fazer isso:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(Range(" A " & i), " this ", " THAT ")
Next i
End Sub

Quando executamos esta macro, recebemos a seguinte saída:

A coluna B exibe cada uma das strings na coluna A, com cada ocorrência de “isto” substituída por “AQUELE”.

Observe que esta substituição diferencia maiúsculas de minúsculas .

Ou seja, cada ocorrência de “isto” é substituída, mas cada ocorrência de “isto” é deixada sozinha.

Exemplo 2: Use VBA para substituir todas as ocorrências de caracteres em uma string (sem distinção entre maiúsculas e minúsculas)

Digamos que queremos substituir “this” (independentemente do caso) por “THAT” em cada string.

Podemos criar a seguinte macro para fazer isso:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ")
Next i
End Sub

Quando executamos esta macro, recebemos a seguinte saída:

A coluna B exibe cada uma das strings na coluna A, com cada ocorrência de “isto” substituída por “AQUELE”.

Observe que esta substituição não diferencia maiúsculas de minúsculas .

Ou seja, toda ocorrência de “isto” (em maiúscula ou não) é substituída.

Conseguimos realizar essa substituição sem distinção entre maiúsculas e minúsculas usando o método LCase para primeiro converter cada string na coluna A em minúsculas antes de pesquisar “this” em cada string.

Exemplo 3: Use VBA para substituir as primeiras N ocorrências de um caractere em uma string

Suponha que queiramos substituir apenas a primeira ocorrência de “this” (independentemente do caso) por “THAT” em cada string.

Podemos criar a seguinte macro para fazer isso:

 Sub ReplaceChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", " THAT ", Count:=1)
Next i
End Sub

Quando executamos esta macro, recebemos a seguinte saída:

A coluna B exibe cada uma das strings na coluna A com apenas a primeira ocorrência de “this” substituída por “THAT”.

Observe que usamos Count:=1 para substituir apenas a primeira ocorrência de uma string específica, mas você pode substituir 1 por qualquer valor que desejar para substituir as primeiras n ocorrências de uma string específica.

Nota : Você pode encontrar a documentação completa para o método VBA Replace aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns usando VBA:

VBA: Como contar ocorrências de caracteres em uma string
VBA: como verificar se uma string contém outra string
VBA: Como contar células com texto específico

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *