Vba: como remover caracteres de uma string


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

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 remover todas as ocorrências de caracteres em uma string (diferencia maiúsculas de minúsculas)

Digamos que queremos remover “this” de cada string.

Podemos criar a seguinte macro para fazer isso:

 Sub RemoveChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(Range(" A " & i), " this ", "")
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 “this” removida.

Observe que esta macro diferencia maiúsculas de minúsculas .

Ou seja, todas as ocorrências de “isto” são removidas, mas todas as ocorrências de “isto” são deixadas de lado.

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

Digamos que queremos remover “this” (independentemente do caso) de cada string.

Podemos criar a seguinte macro para fazer isso:

 SubRemoveChar ()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "")
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 “this” removida.

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

Ou seja, todas as ocorrências de “isto” (em maiúsculas ou não) são removidas.

Conseguimos isso 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 remover as primeiras N ocorrências de caractere em uma string

Digamos que queremos remover apenas a primeira ocorrência de “this” (independentemente do caso) de cada string.

Podemos criar a seguinte macro para fazer isso:

 SubRemoveChar ()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "", 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” removida.

Observe que usamos Count:=1 para remover apenas a primeira ocorrência de uma string específica, mas você pode substituir 1 por qualquer valor que deseja remover no lugar das 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 *