Formate dados com formatos de números personalizados usando VBA no Microsoft Excel

Anonim

Neste artigo, criaremos uma macro para formatar os dados fornecidos no formato de número personalizado desejado usando VBA.

Os dados brutos para este exemplo consistem em dados da equipe de vendas. Os dados brutos contêm nome, id do produto, preço do produto, quantidade vendida e vendas totais.

Antes de executar a macro, é necessário especificar o formato de número personalizado na coluna P e o número da coluna em que se deseja aplicar o formato de número personalizado na coluna Q.

Clique no botão “Formatar” para executar a macro “Formatação”.

A macro mudará a formatação dos dados fornecidos de acordo com o formato de número personalizado especificado.

Explicação lógica

Esta macro escolhe a formatação de número da coluna P e atribui a formatação de número às colunas especificadas por números de coluna na coluna Q.

Nesta macro, usamos dois Loops DO UNTIL para o loop. O primeiro DO UNTIL Loop é usado para fazer um loop até que todos os formatos de número sejam aplicados às colunas. O segundo loop DO UNTIL é usado para encontrar todos os diferentes números de coluna especificados e separados por vírgulas (,).

Explicação do código

strCol = Left (txt, InStr (txt, ",") - 1)

O código acima é usado para separar o número da coluna da string que contém todos os números da coluna separados por vírgulas (,).

Colunas (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Value

O código acima é usado para aplicar o formato de número personalizado na coluna especificada.

txt = Right (txt, Len (txt) - InStr (txt, ","))

O código acima é usado para separar a string deixada de fora após a remoção do número da coluna da string definida.

Siga abaixo para o código

Option Explicit Sub Formatting () 'Declarando variáveis ​​Dim wks As Worksheet Dim intRow As Long Dim strCol As String Dim txt As String' Inicializando as variáveis ​​Set wks = Worksheets ("Format") intRow = 4 'Looping na 16ª coluna até o valor vazio é found Do Até IsEmpty (wks.Cells (intRow, 16)) 'Atribuindo o valor do formato de número personalizado txt = wks.Cells (intRow, 17)' Loop e encontrando todos os números da coluna separados por vírgula (,) Do Until InStr ( txt, ",") = 0 'Obtendo o número da coluna strCol = Left (txt, InStr (txt, ",") - 1)' Atribuindo o formato de número Colunas (CInt (strCol)). NumberFormat = wks.Cells (intRow , 16) .Value 'Truncando a string para encontrar o próximo número da coluna após a vírgula (,) txt = Right (txt, Len (txt) - InStr (txt, ",")) Loop' Atribuindo o formato de número Colunas (CInt (txt)). NumberFormat = wks.Cells (intRow, 16) .Value intRow = intRow + 1 Loop End Sub

Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.

Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail