Este tutorial demonstrará como usar a função VBA direita para extrair texto da direita.
Função Correta
Função VBA Right Últimos n caracteres
A função VBA Right retorna os últimos n caracteres de uma string:
123456 | Sub RightExample_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
Conforme mostrado acima, você pode definir uma string simplesmente inserindo o texto entre aspas. Mas a função RIGHT também funcionará com variáveis de string. Esses exemplos extrairão os últimos n caracteres de uma variável de string.
123456789 | Sub RightExample_2 ()Dim StrEx As String 'Definir uma variável de stringStrEx = "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 |
Programação VBA | O Code Generator funciona para você!
Função VBA Right Últimos n caracteres de uma célula
Strings podem ser definidas em 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 string e extraia os últimos n caracteres desse valor da Célula da Planilha.
123456789101112 | Sub RightExample_3 ()Dim StrEx As String 'Definir uma variável de string'Leia o valor da célula A1 na planilha Plan1StrEx = ThisWorkbook.Worksheets ("Sheet1"). 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 Trim off First Letter
Para remover letras do início de uma string, use a função RIGHT junto com a função LEN.
A função VBA LEN conta o número de caracteres em uma string:
1 | Len (StrEx) |
Ao combinar as funções, podemos remover um certo número de caracteres do início da string:
12345678 | Sub RightExample_4 ()Dim StrEx As String 'Definir uma variável de stringStrEx = "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 |
Direito do VBA de extrair texto após o espaço
Para extrair o sobrenome de uma string com um nome completo, use a Função Right junto com Len e Instr Function.
A função VBA LEN conta o número de caracteres em uma string:
1 | Len (StrEx) |
A função VBA InStr procura uma substring dentro de uma string e retorna o número da posição da substring.
1 | InStr (StrEx, "") |
Ao combinar as funções, podemos extrair a parte após o primeiro espaço de uma frase:
123456789101112131415 | Sub RightExample_5 ()Dim StrEx As String 'Definir uma variável de stringStrEx = "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 |
Cansado de procurar exemplos de código VBA? Experimente o AutoMacro!
VBA direito de extrair a última palavra
Para extrair a última palavra de uma string com uma frase, use a função Right junto com Len e a função InstrRev.
Como vimos acima, a função VBA LEN conta o número de caracteres em uma string:
1 | Len (StrEx) |
A função VBA InStrRev procura uma substring dentro de uma string e retorna o número da posição da substring. Ele inicia a pesquisa do final da frase (da direita para a esquerda), mas retorna a posição do início da string (da esquerda para a direita).
1 | InStrRev (StrEx, "") |
Ao combinar as funções, podemos extrair a parte após o último espaço de uma frase:
123456789101112131415 | Sub RightExample_6 ()Dim StrEx As String 'Definir uma variável de stringStrEx = "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 é: "da Vinci"StrEx = "Que a Força esteja com você"MsgBox Right (StrEx, Len (StrEx) - InStrRev (StrEx, ""))'O resultado é: "você"End Sub |