Função de Texto VBA

Este tutorial demonstrará como usar a função de texto no VBA.

A função Texto é usada em uma planilha do Excel para retornar uma parte de uma string em um formato especificado. A função Text não é uma função VBA, mas pode ser usada em VBA referindo-se ao objeto Worksheet Function.

WorksheetFunction.Text

A sintaxe em VBA seria, portanto, a seguinte:

= WorksheetFunction.Text (Arg1, Arg2)

onde Arg1 é a string original e Arg2 é o formato da string que desejamos retornar.

1234567 Sub TestWSFunction ()Dim dte As StringDim strD As Stringdte = "08/05/2021"strD = WorksheetFunction.Text (dte, "mmmm")MsgBox strDEnd Sub

No exemplo acima, a variável de string dte está armazenando uma data. A função Texto então retorna a parte do mês da data.

Formatando Números com a Função de Texto

Podemos usar a função de texto para formatar números em nosso código VBA.

1234567 Sub FormatCurrency ()Dim strNum As StringDim strFormat As StringstrNum = "75896.125"strFormat = WorksheetFunction.Text (strNum, "$ #, ## 0.00")MsgBox strFormatEnd Sub

A string retornada no exemplo acima seria $ 75.896,13.

Outros exemplos de formatação de número usando a função de texto são:

12345678 = WorksheetFunction.Text (75896.125, "0")isso vai retornar: "75896"= WorksheetFunction.Text (75896.125, "0,0")isso vai retornar: "75896,1"= WorksheetFunction.Text (75896.125, "#, ## 0")isso vai retornar: "75,896"

No entanto, o Excel tem uma função VBA embutida que podemos usar em vez da função Texto se desejarmos formatar datas e números dentro do VBA. Isso é conhecido como função Formatar.

A função de formato VBA

Tomando o exemplo acima, em vez de usar WorksheetFunction.Text, podemos apenas usar a função de formato para obter os mesmos resultados.

12345678 = Formato (75896.125, "0")isso vai retornar: "75896"= Formato (75896,125, "0,0")isso vai retornar: "75896,1"= Formato (75896.125, "#, ## 0")isso vai retornar: "75,896"

Da mesma forma, podemos usar a função Format para formatar porções de data de uma string.

1234567 Sub TestFormatFunction ()Dim dte As StringDim strD As Stringdte = "08/05/2021"strD = Formato (dte, "mmmm")MsgBox strDEnd Sub

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave