VBA – Função Right – Extrair Texto da Direita
In this Article
Este tutorial demonstrará como usar a função Right do VBA para extrair texto da direita.
Função Right (Direita)
Função VBA Right – Últimos n Caracteres
A função Right do VBA retorna os últimos n caracteres de uma cadeia de caracteres:
Sub RightExemplo_1()
MsgBox Right("ABCDEFGHI", 4) 'O resultado é: "FGHI"
MsgBox Right("ABCDEFGHI", 2) 'O resultado é: "HI"
MsgBox Right("ABCDEFGHI", 1) 'O resultado é: "I"
MsgBox Right("ABCDEFGHI", 100) 'O resultado é: "ABCDEFGHI"
End Sub
Função VBA Right – Últimos n Caracteres em uma Variável
Como mostrado acima, você pode definir uma cadeia de caracteres simplesmente digitando o texto entre aspas. Mas a função RIGHT também funciona com variáveis de cadeia de caracteres. Esses exemplos extrairão os últimos n caracteres de uma variável de cadeia de caracteres.
Sub RightExemplo_2()
Dim StrEx As String 'Defina uma variável de cadeia de caracteres
StrEx = "ABCDEFGHI"
MsgBox Right(StrEx, 4) 'O resultado é: "FGHI"
MsgBox Right(StrEx, 2) 'O resultado é: "HI"
MsgBox Right(StrEx, 1) 'O resultado é: "I"
MsgBox Right(StrEx, 100) 'O resultado é: "ABCDEFGHI"
End Sub
Função VBA Right – Últimos n caracteres de uma Célula
As cadeias de caracteres podem ser definidas no código VBA, mas você também pode usar valores de células. Leia o valor de uma célula, mantenha-o em uma variável de cadeia de caracteres e extraia os últimos n caracteres do valor da célula da planilha.
Sub RightExemplo_3()
Dim StrEx As String 'Defina uma variável de cadeia de caracteres
'Leia o valor da célula A1 na planilha1
StrEx = ThisWorkbook.Worksheets("Planilha1").Range("A1").Value
'Para este exemplo, o valor da célula A1 é "ABCDEFG hI"
MsgBox Right(StrEx, 4) 'O resultado é: "G hI"
MsgBox Right(StrEx, 2) 'O resultado é: "hI"
MsgBox Right(StrEx, 1) 'O resultado é: "I"
MsgBox Right(StrEx, 100) 'O resultado é: "ABCDEFG hI"
End Sub
Função VBA Right – Cortar a Primeira Letra
Para remover letras do início de uma cadeia de caracteres, use a função RIGHT junto com a função LEN.
A função LEN do VBA conta o número de caracteres em uma cadeia de caracteres:
Len(StrEx)
Ao combinar as funções, podemos remover um determinado número de caracteres do início da cadeia de caracteres:
Sub RightExemplo_4()
Dim StrEx As String 'Definir uma variável de cadeia de caracteres
StrEx = "ABCDEF"
MsgBox Right(StrEx, Len(StrEx)) 'O resultado é: "ABCDEF"
MsgBox Right(StrEx, Len(StrEx) - 1) 'O resultado é: "BCDEF"
MsgBox Right(StrEx, Len(StrEx) - 2) 'O resultado é: "CDEF"
End Sub
VBA Right para Extrair Texto Após o Espaço
Para extrair o sobrenome de uma cadeia de caracteres com um nome completo, use a função Right juntamente com as funções Len e Instr.
A função LEN do VBA conta o número de caracteres em uma cadeia de caracteres:
Len(StrEx)
A função InStr do VBA procura uma substring dentro de uma string e retorna o número da posição da substring.
InStr(StrEx, " ")
Ao combinar as funções, podemos extrair a parte após o primeiro espaço de uma frase:
Sub RightExemplo_5()
Dim StrEx As String 'Definir uma variável de cadeia de caracteres
StrEx = "Luke Skywalker"
MsgBox Right(StrEx, Len(StrEx) - InStr(StrEx, " "))
'O resultado é: "Skywalker"
StrEx = "Leonardo da Vinci"
MsgBox Right(StrEx, Len(StrEx) - InStr(StrEx, " "))
'O resultado é: "da Vinci"
StrEx = "Que a Força esteja com você"
MsgBox Right(StrEx, Len(StrEx) - InStr(StrEx, " "))
'O resultado é: "a Força esteja com você"
End Sub
VBA Right para Extrair a Última Palavra
Para extrair a última palavra de uma cadeia de caracteres com uma frase, use a função Right juntamente com a função Len e InstrRev.
Como vimos acima, a função LEN do VBA conta o número de caracteres em uma cadeia de caracteres:
Len(StrEx)
A função InStrRev do VBA procura uma substring dentro de uma string e retorna o número da posição da substring. Ela inicia a pesquisa a partir do final da frase (da direita para a esquerda), mas retorna a posição a partir do início da cadeia de caracteres (da esquerda para a direita).
InStrRev(StrEx, " ")
Ao combinar as funções, podemos extrair a parte após o último espaço de uma frase:
Sub RightExemplo_6()
Dim StrEx As String 'Definir uma variável de cadeia de caracteres
StrEx = "Luke Skywalker"
MsgBox Right(StrEx, Len(StrEx) - InStrRev(StrEx, " "))
'O resultado é: "Skywalker"
StrEx = "Leonardo da Vinci"
MsgBox Right(StrEx, Len(StrEx) - InStrRev(StrEx, " "))
'O resultado é: "Vinci"
StrEx = "Que a Força esteja com você"
MsgBox Right(StrEx, Len(StrEx) - InStrRev(StrEx, " "))
'O resultado é: "você"
End Sub