VBA – Função Len – Obter o Comprimento da Cadeia de Caracteres

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 25, 2023

Este tutorial demonstrará como usar a função Len do VBA para obter o comprimento de uma cadeia de caracteres.

Função Len

A função Len do VBA retorna o comprimento de uma cadeia de caracteres especificada.

Contagem de Caracteres Len do VBA

A função Len do VBA conta os caracteres em uma cadeia de caracteres.

Sub LenExamplo_1()

MsgBox Len("12345") 'O resultado é: 5

MsgBox Len("12") 'O resultado é: 2

MsgBox Len("1") 'O resultado é: 1

MsgBox Len(" ") 'O resultado é: 1

'Há um caractere de espaço ali.

MsgBox Len("") 'O resultado é: 0

MsgBox Len("AB Cd") 'O resultado é: 5

End Sub

VBA Len – Strings ou Variants

A função Len do VBA pode contar o número de caracteres em variáveis declaradas como Strings ou Variants. Na verdade, o VBA Len tratará uma Variant como uma String. Se a função Len do VBA for usada com um Integer (inteiro), Long (longo), Single (simples) ou Double (duplo), ela contará o número de bytes necessários para armazenar a variável.

Sub LenExamplo_2()

Dim VarEx1 As String
VarEx1 = 12345
MsgBox Len(VarEx1) 'O resultado é: 5
'Len está contando o número de caracteres na variável

Dim VarEx2 As Variant
VarEx2 = 12345
MsgBox Len(VarEx2) 'Result is: 5
'Len está contando o número de caracteres na variável

Dim VarEx3 As Integer
VarEx3 = 12345
MsgBox Len(VarEx3) 'Resultado é: 2
'Len está contando o número de bytes usados para armazenar a variável

Dim VarEx4 As Long
VarEx4 = 12345
MsgBox Len(VarEx4) 'Resultado é: 4
'Len está contando o número de bytes usados para armazenar a variável

Dim VarEx5 As Single
VarEx5 = 12345
MsgBox Len(VarEx5) 'Result is: 4
'Len está contando o número de bytes usados para armazenar a variável

Dim VarEx6 As Double
VarEx6 = 12345
MsgBox Len(VarEx6) 'Resultado é: 8
'Len está contando o número de bytes usados para armazenar a variável

End Sub

VBA Len – Contagem de Ocorrências de um Caractere

A função Len do VBA pode ser usada com a função Replace do VBA para contar quantas vezes um caractere é encontrado em uma cadeia de caracteres.

A função Replace do VBA pode substituir uma substring por outra substring em um texto:

MsgBox Replace("XBCX", "X", "7") 'O resultado é: "7BC7"

Podemos usar Replace para remover os caracteres que queremos contar com “” e, em seguida, encontrar a diferença de comprimento antes e depois da substituição.

Sub LenExamplo_3()

Dim StrEx As String 'Definir uma variável de cadeia de caracteres
StrEx = "Jack,John,Jim,Jordan"

MsgBox Len(StrEx) - Len(Replace(StrEx, ",", "")) 'O resultado é: 3

'Decompondo o código acima
MsgBox Len(StrEx)                   'O resultado é: 20
MsgBox Replace(StrEx, ",", "")      'O resultado é: "JackJohnJimJordan"
MsgBox Len(Replace(StrEx, ",", "")) 'O resultado é: 17

MsgBox Len(StrEx) - Len(Replace(StrEx, ",", "")) 'O resultado é: 20-17=3
End Sub

VBA Len – Contagem de Ocorrências de uma Substring

A função Len do VBA pode ser usada com a função Replace do VBA para contar quantas vezes uma substring é encontrada em uma string.

A função Replace do VBA pode substituir uma substring por outra substring em um texto:

MsgBox Replace("XB cX", "X", "7") 'O resultado é: "7B c7"

Podemos usar Replace para remover as substrings que queremos contar com “” e, em seguida, encontrar a diferença de comprimento antes e depois da substituição. Por fim, precisamos dividir a diferença com o comprimento da substring que substituímos.

Sub LenExamplo_4()
Dim StrEx As String 'Defina uma variável de cadeia de caracteres
StrEx = "Jack, John, Jim, Jordan"

Dim SubStr As String 'Defina uma variável de substring
SubStr = ", "
'Descobriremos quantas vezes SubStr é encontrada dentro de StrEx

MsgBox (Len(StrEx) - Len(Replace(StrEx, SubStr, "")))/Len(SubStr) 'O resultado é: 3

'Decompondo o código acima
MsgBox Len(StrEx)                      'O resultado é: 23
MsgBox Replace(StrEx, SubStr, "")      'O resultado é: "JackJohnJimJordan"
MsgBox Len(Replace(StrEx, SubStr, "")) 'O resultado é: 17

MsgBox Len(StrEx) - Len(Replace(StrEx, SubStr, "")) 'O resultado é: 23-17=6
MsgBox (Len(StrEx) - Len(Replace(StrEx, SubStr, ""))) / Len(SubStr)
'O resultado é: (23-17)/2=3
End Sub

 

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA