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