Este tutorial demonstrará como usar a função Substituir VBA para substituir cadeias de caracteres de texto.
Substituir Função
A função VBA Replace retorna uma string, com substituições feitas. Com o uso de parâmetros opcionais, a nova string pode começar na posição especificada por start e terminar no final da string original.
Substituir VBA Substituir uma Substring
A função Substituir VBA pode ser usada para substituir qualquer substring encontrada, em cada parte que for encontrada.
12345678910111213141516 | Sub ReplaceExample_1 ()Substituir MsgBox ("ABCABCABC", "A", "!")'O resultado é: "! BC! BC! BC"MsgBox Replace ("Gosto de rosa, vermelho e preto", "rosa", "roxo")'O resultado é: "Eu gosto de roxo, vermelho e preto"MsgBox Replace ("A, B, C, A, B, C, A, B, C", ",", ",")'O resultado é: "ABCABCABC"Substituir MsgBox ("ABCABCABC", "ABC", "!")'O resultado é: "!!!"Substituir MsgBox ("ABCABCABC", "ABc", "!")'O resultado é: "ABCABCABC"Substituir MsgBox ("ABCABCABC", "ZBC", "!")'O resultado é: "ABCABCABC"End Sub |
Posição inicial de substituição de VBA
A função Substituir VBA pode ser usada para substituir qualquer substring encontrada, em cada parte que for encontrada. Se atribuirmos uma posição inicial, o resultado seria a parte da string original após esse ponto inicial.
12345678910111213 | Sub ReplaceExample_2 ()MsgBox Replace ("ABCABCABC", "A", "123") 'O resultado é: "123BC123BC123BC"MsgBox Replace ("ABCABCABC", "A", "123", 2) 'O resultado é: "BC123BC123BC"MsgBox Replace ("ABCABCABC", "A", "123", 7) 'O resultado é: "123BC"MsgBox Replace ("ABCABCABC", "A", "123", 8) 'O resultado é: "BC"MsgBox Replace ("ABCABCABC", "ABC", "! @") 'O resultado é: "! @! @! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 2) 'O resultado é: "BC! @! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 6) 'O resultado é: "C! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 7) 'O resultado é: "! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 8) 'O resultado é: "BC"End Sub |
VBA substitui apenas algumas ocorrências
A função Substituir VBA pode ser usada para substituir qualquer substring encontrada, em cada parte que for encontrada. Podemos decidir opcionalmente quantas ocorrências devem ser substituídas.
123456789101112 | Sub ReplaceExample_3 ()MsgBox Replace ("ABCABCABC", "A", "12") 'O resultado é: "12BC12BC12BC"MsgBox Replace ("ABCABCABC", "A", "12",, 1) 'O resultado é: "12BCABCABC"MsgBox Replace ("ABCABCABC", "A", "12",, 2) 'O resultado é: "12BC12BCABC"MsgBox Replace ("ABCABCABC", "A", "12",, 3) 'O resultado é: "12BC12BC12BC"MsgBox Replace ("ABCABCABC", "A", "12",, 5) 'O resultado é: "12BC12BC12BC"Substituir MsgBox ("ABCABCABC", "A", "12", 3, 1)'O resultado é: "C12BCABC"'Substituímos A por 12, 1 vez a partir da posição 3 da corda original.End Sub |
Sensibilidade de Substituição de VBA
A função de substituição do VBA, por padrão, diferencia maiúsculas de minúsculas. Você pode alterar esse comportamento para não diferenciar maiúsculas de minúsculas usando um parâmetro opcional (vbTextCompare) Nesse caso, você também deve definir a posição inicial da pesquisa.
12345678910111213 | Sub ReplaceExample_4 ()Substituir MsgBox ("ABcABCABc", "ABc", "12")'O resultado é: "12ABC12"MsgBox Replace ("ABcABCABc", "ABc", "12",,, vbTextCompare)'O resultado é: "121212"'Quando usamos vbTextCompare, precisamos adicionar os 2 outros argumentos opcionais:'começar e contarSubstituir MsgBox ("ABcABCABcABc", "ABc", "12", 3, 1)'O resultado é: "cABC12ABc"'Começou a partir da posição 3 e substituiu ABC apenas 1 vez.End Sub |
Você também pode realizar uma substituição sem distinção entre maiúsculas e minúsculas, adicionando o texto de comparação de opção na parte superior do seu módulo:
1 | Texto de comparação de opções |
VBA Substituir aspas duplas
A função VBA Replace pode substituir o caractere de aspas duplas usado para delimitar o início e o fim de uma string.
A função VBA Chr pode retornar um caractere de seu número no conjunto de caracteres.
1 | MsgBox Chr (34) 'O resultado é: " |
Ou
1 | MsgBox Chr (64) 'O resultado é: @ |
As aspas duplas podem ser usadas dentro da função VBA Replace usando “” ”” ou a função VBA Chr (34).
12345678910111213 | Sub ReplaceExample_5 ()Dim StrEx como stringStrEx = "AB" "AB" ""O resultado de MsgBox StrEx 'é: AB "AB"MsgBox Replace (StrEx, Chr (34), "12")'O resultado é: AB12AB12Substituir MsgBox (StrEx, "" "", "DQ")'O resultado é: "ABDQABDQ"End Sub |
VBA Substituir Linha de Quebra na Célula
A função Substituir do VBA pode localizar o caractere especial da linha de quebra em uma célula e removê-lo ou substituí-lo por um caractere de espaço. O caractere especial de linha de quebra pode ser inserido em uma célula usando o atalho de teclado Alt + Enter e pode ser usado em código VBA com seu número de conjunto de caracteres usando a função VBA Chr (10).
1234567891011121314 | Sub ReplaceExample_6 ()Dim StrEx As String 'Definir uma variável de string'Leia o valor da célula A2 na folha de trabalho 1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A2"). Value'O caractere de quebra de linha inserido com Alt + Enter é Chr (10) e é invisível.'Esta linha de código substitui esse caractere por espaçoStrEx = Substituir (StrEx, Chr (10), "")'Escreva o valor substituído na célula B2 na folha de trabalho 1ThisWorkbook.Worksheets ("Sheet1"). Range ("B2"). Value = StrExEnd Sub |