Este tutorial demonstrará como usar a função Formatar.
Função de Formato
Formatar números com formatos predefinidos
A função de formato pode converter um número em string formatado com formatos numéricos nomeados predefinidos. Esses formatos predefinidos são Moeda, Fixo, Padrão, Porcentagem, Científico, Sim / Não, Verdadeiro / Falso e Ligado / Desligado.
12345678910111213141516171819202122232425262728293031 | Sub FormatExample_1 ()Formato MsgBox (1234567.8) 'Result is: 1234567.8'O formato apenas deixa o número como estáFormato MsgBox (1234567.8, "Moeda") 'O resultado é: $ 1.234.567,80'Moeda usa as configurações de moeda do sistemaFormato MsgBox (1234567.8, "Fixo") 'O resultado é: 1234567.80'Fixo: pelo menos um dígito antes da vírgula decimal e'usa as configurações do sistema para a parte decimalFormato MsgBox (1234567.8, "Padrão") 'O resultado é: 1.234.567,80'Padrão: separadores de milhares e sistema padrãoFormato MsgBox (1234567.8, "Porcentagem") 'O resultado é: 123456780,00%'Porcentagem, multiplica por 100 com% e sistema padrão.Formato MsgBox (1234567.8, "Científico") 'O resultado é: 1.23E + 06'Notação científicaFormato MsgBox (1234567.8, "Sim / Não") 'O resultado é: Sim'Não se o número for zeroFormato MsgBox (1234567.8, "Verdadeiro / Falso") 'O resultado é: Verdadeiro'Falso se o número for igual a zeroFormato MsgBox (1234567.8, "On / Off") 'O resultado é: On'Desligado se o número for zeroEnd Sub |
Formatar números com formatos definidos pelo usuário
A função de formato pode converter um número em uma string, formatos numéricos definidos pelo usuário formatados. 0 é um marcador de posição de dígito que exibe um dígito ou zero. # é um marcador de posição de dígito que exibe um dígito ou nada. Um ponto (.) É o marcador decimal,% é o marcador percentual e a vírgula (,) é o separador de milhares. O texto pode ser adicionado no formato usando aspas duplas (“”) e um único caractere pode ser adicionado se for usado após uma barra invertida (\).
1234567891011 | Sub FormatExample_2 ()Formato MsgBox (7.8, "000,00") 'O resultado é: 007,80Formato MsgBox (12347.8356, "000,00") 'O resultado é: 12347,84Formato MsgBox (7.8, "###. ##") 'O resultado é: 7.8Formato MsgBox (12347.8356, "###. ##") 'O resultado é: 12347,84Formato MsgBox (7,8, "\ $. 00") 'O resultado é: $ 7,80Formato MsgBox (1237.835, "ABA0.00") 'O resultado é: ABA1237.84Formato MsgBox (12347.8356, "000,00%") 'O resultado é: 1234783,56%Formato MsgBox (12347.8356, "% 000,00") 'O resultado é:% 12347.84End Sub |
Formatar números de acordo com os valores
A função de formato pode ter seções diferentes usando regras de formato diferentes para números positivos, números negativos, zero e nulo. Essas seções são separadas por um ponto e vírgula.
1234567 | Sub FormatExample_3 ()Formato MsgBox (7,8, "000,00; (000,00); \ z \ e \ r \ o; nada") 'O resultado é: 007,80Formato MsgBox (-7,8, "000,00; (000,00); \ z \ e \ r \ o; nada") 'O resultado é: (007,80)Formato MsgBox (0, "000,00; (000,00); \ z \ e \ r \ o; nada") 'O resultado é: zeroFormato MsgBox (Nulo, "000,00; (000,00); \ z \ e \ r \ o; nada") 'O resultado é: nadaEnd Sub |
Formatar datas com formatos predefinidos
A função de formatação pode formatar datas com diferentes formatos predefinidos. Esses formatos são de data longa, média e curta e também de tempo longo, médio e curto.
1234567891011121314 | Sub FormatExample_4 ()Dim DateEx As DateDateEx = # 4/18/2020 19:35:56 #Formato MsgBox (DateEx, "General Date") 'Result is: 4/18/2020 7:35:56 PMFormato MsgBox (DateEx, "Long Date") 'O resultado é: sábado, 18 de abril de 2022Formato MsgBox (DateEx, "Medium Date") 'O resultado é: 18-abr-20Formato MsgBox (DateEx, "Short Date") 'O resultado é: 18/04/2020Formato MsgBox (DateEx, "Long Time") 'O resultado é: 7:35:56 PMFormato MsgBox (DateEx, "Medium Time") 'O resultado é: 07:35 PMFormato MsgBox (DateEx, "Short Time") 'O resultado é: 19:35End Sub |
Datas de formato com formatos definidos pelo usuário
A função de formato pode formatar datas com formatos definidos pelo usuário. Caracteres como d, m, y, w, q podem ser usados para criar formatos de data personalizados.
123456789101112131415161718192021222324 | Sub FormatExample_5 ()Dim DateEx As DateDateEx = # 4/18/2020 19:35:56 #Formato MsgBox (DateEx, "m / d / yy") 'O resultado é: 18/04/2020Formato MsgBox (DateEx, "mm-dd-aa") 'O resultado é: 18/04-2020Formato MsgBox (DateEx, "mmm-dd-aa") 'O resultado é: 18 de abril a 2020Formato MsgBox (DateEx, "mmmm-dd-yy") 'Result is: April-18-2020Formato MsgBox (DateEx, "mm-ddd-aa") 'O resultado é: 04-Sáb-2020Formato MsgBox (DateEx, "mm-dddd-aa") 'O resultado é: 04-sábado-2020Formato MsgBox (DateEx, "y")'O resultado é: 109'número de dias no ano 1-366Formato MsgBox (DateEx, "ww")'O resultado é: 16'número da semana no ano 1-52Formato MsgBox (DateEx, "q")'O resultado é: 2'trimestre no ano 1-4End Sub |
Caracteres como combinações de h, n, s e am, pm podem ser usadas para criar formatos de hora personalizados.
123456789101112 | Sub FormatExample_6 ()Dim DateEx As DateDateEx = # 4/18/2020 7:06:05 PM #Formato MsgBox (DateEx, "h: n: s") 'O resultado é: 19: 6: 5Formato MsgBox (DateEx, "hh: nn: ss") 'O resultado é: 19:06:05Formato MsgBox (DateEx, "hh: nn: ss am / pm") 'O resultado é: 07:06:05 pmFormato MsgBox (DateEx, "hh: nn: ss AM / PM") 'O resultado é: 07:06:05 PMFormato MsgBox (DateEx, "hh: nn: ss a / p") 'O resultado é: 07:06:05 pFormato MsgBox (DateEx, "hh: nn: ss A / P") 'O resultado é: 07:06:05 PEnd Sub |
Formato para melhor legibilidade
A função de formatação pode formatar strings ou números para melhor legibilidade. @ é um marcador de posição de caractere usado para exibir um caractere ou espaço. & é um marcador de posição de caractere usado para exibir um caractere ou nada. ! pode ser usado para usar marcadores de posição de caractere da esquerda para a direita e pode ser usado para forçar maiúsculas ou minúsculas. Pode ser útil na formatação de números de telefone ou outros números grandes sem alterar o valor original.
12345678910111213141516171819202122 | Sub FormatExample_7 ()Dim StrEx como stringStrEx = "ABCdef"Formato MsgBox (StrEx, "- @@@ - @@ - @@") 'O resultado é: - AB-Cd-efFormato MsgBox (StrEx, "- &&& - && - &&") 'O resultado é: -AB-Cd-ef'Começa da direita para a esquerda.Formato MsgBox (StrEx, "- @@@ - @@ - @@ - @@") 'O resultado é: - -AB-Cd-efFormato MsgBox (StrEx, "- &&& - && - && - &&") 'O resultado é: --AB-Cd-ef'Começa da direita para a esquerda. Quando sem caracteres @ adiciona espaços e & não adiciona nadaFormato MsgBox (StrEx, "! - @@@ - @@ - @@ - @@") 'O resultado é: -ABC-de-f -Formato MsgBox (StrEx, "! - &&& - && - && - &&") 'O resultado é: -ABC-de-f'Começa da esquerda para a direita por causa do!Formato MsgBox (StrEx, ">") 'O resultado é: ABCDEFFormato MsgBox (StrEx, "<") 'O resultado é: abcdefFormato MsgBox (1234567890, "@@@ - @@@ - @@@@") 'O resultado é: 123-456-7890Formato MsgBox (1234567890, "@@@@ - @@@ - @@@") 'O resultado é: 1234-567-890End Sub |
Padrões de formato em células de planilha
A função de formato pode ser usada em código VBA e também em células de planilhas. Selecione a célula ou intervalo de células e siga a entrada do menu Formatar células> Personalizar. Existem muitos formatos definidos pelo usuário e também o usuário pode criar seus próprios formatos personalizados.
Padrões de formato com fórmula de texto
A função de formato pode alterar diretamente o formato de um valor dentro do código VBA. Também podemos usar a fórmula de texto do Excel para obter o mesmo resultado usando WorksheetFunction.Text.
1234567891011 | Sub FormatExample_8 ()Formato MsgBox (7.8, "000,00")'O resultado é: 007,80MsgBox WorksheetFunction.Text (7.8, "000,00")'O resultado é: 007,80Formato MsgBox (7.8, "###. ##")'O resultado é: 7,8MsgBox WorksheetFunction.Text (7.8, "###. ##")'O resultado é: 7,8End Sub |