Devolve um valor Longo que contém o número de carateres numa cadeia ou o número de bytes necessários para armazenar uma variável.
Sintaxe
Compr(cadeia* | *nomevar)
A sintaxe da função NÚM.CARAT tem os seguintes argumentos:
| Argumento | Descrição |
|---|---|
| cadeia | Qualquer expressão de cadeia válida. Se cadeia contiver Nulo, Nulo é devolvido. |
| nomevar | Qualquer nome variável válido. Se nomevar contiver Null, Null será retornado. Se varname for uma Variant, Len trata-o como uma String e sempre retorna o número de caracteres que contém. |
Observações
Um (e apenas um) dos dois argumentos possíveis deve ser especificado. Com tipos definidos pelo usuário, Len retorna o tamanho como será gravado no arquivo.
Nota
Utilize a função ComprB com dados de byte contidos numa cadeia, como em idiomas de conjunto de carateres de byte duplo (DBCS). Em vez de devolver o número de carateres numa cadeia, NÚM.CARATB devolve o número de bytes utilizado para representar essa cadeia. Com tipos definidos pelo usuário, LenB retorna o tamanho na memória, incluindo qualquer preenchimento entre elementos. Para código de exemplo que usa LenB, consulte o segundo exemplo no tópico de exemplo.
Nota
Len pode não ser capaz de determinar o número real de bytes de armazenamento necessários quando usados com cadeias de caracteres de comprimento variável em tipos de dados definidos pelo usuário.
Exemplo de consulta
| Expressão | Resultados |
|---|---|
| SELECT ProductID, Len(ProductID) AS ProductLen FROM ProductSales; | Devolve os valores do campo "IDDoProduto" e o comprimento desses valores nas colunas ProductLen. |
Exemplos de VBA
Nota
Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.
O primeiro exemplo usa Len para retornar o número de caracteres em uma cadeia de caracteres ou o número de bytes necessários para armazenar uma variável. O tipo... A definição CustomerRecord do bloco Tipo Final deve ser precedida pela palavra-chave Private se aparecer em um módulo de classe. Num módulo padrão, uma instrução Type pode ser Public.
Type CustomerRecord ' Define user-defined type.
ID As Integer ' Place this definition in a
Name As String * 10 ' standard module.
Address As String * 30
End Type
Dim Customer As CustomerRecord ' Declare variables.
Dim MyInt As Integer, MyCur As Currency
Dim MyString, MyLen
MyString = "Hello World" ' Initialize variable.
MyLen = Len(MyInt) ' Returns 2.
MyLen = Len(Customer) ' Returns 42.
MyLen = Len(MyString) ' Returns 11.
MyLen = Len(MyCur) ' Returns 8.
O segundo exemplo usa LenB e uma função definida pelo usuário (LenMbcs) para retornar o número de caracteres de byte em uma cadeia de caracteres se ANSI for usado para representar a cadeia de caracteres.
Function LenMbcs (ByVal str as String)
LenMbcs = LenB(StrConv(str, vbFromUnicode))
End Function
Dim MyString, MyLen
MyString = "ABc"
' Where "A" and "B" are DBCS and "c" is SBCS.
MyLen = Len(MyString)
' Returns 3 - 3 characters in the string.
MyLen = LenB(MyString)
' Returns 6 - 6 bytes used for Unicode.
MyLen = LenMbcs(MyString)
' Returns 5 - 5 bytes used for ANSI.