En este artículo, crearemos una macro para formatear los datos dados en el formato de número personalizado deseado usando VBA.

Los datos sin procesar para este ejemplo consisten en datos del equipo de ventas. Los datos brutos contienen nombre, identificación del producto, precio del producto, cantidad vendida y ventas totales.

ArrowRawData

Antes de ejecutar la macro, uno tiene que especificar el formato de número personalizado en la columna P y el número de columna en el que desea aplicar el formato de número personalizado en la columna Q.

Haga clic en el botón «Formato» para ejecutar la macro «Formateo».

ArrowAfterRunningMacro

Macro cambiará el formato de los datos proporcionados de acuerdo con el formato de número personalizado especificado.

Explicación lógica

Esta macro elige el formato de número de la columna P y asigna el formato de número a las columnas especificadas por los números de columna en la columna Q.

En esta macro, hemos utilizado dos bucles DO UNTIL para realizar el bucle. First DO UNTIL Loop se usa para hacer un bucle hasta que todos los formatos numéricos se aplican a las columnas. El segundo bucle DO UNTIL se utiliza para encontrar todos los diferentes números de columna especificados y separados por comas (,).

Explicación del código

strCol = Izquierda (txt, InStr (txt, «,») – 1)

El código anterior se usa para separar el número de columna de la cadena que contiene todos los números de columna separados por comas (,).

Columns (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Value El código anterior se usa para aplicar el formato de número personalizado en la columna especificada.

txt = Derecha (txt, Len (txt) – InStr (txt, «,»))

El código anterior se utiliza para separar la cadena omitida después de eliminar el número de columna de la cadena definida.

Siga a continuación el código

Option Explicit

Sub Formatting()

'Declaring variables

Dim wks As Worksheet

Dim intRow As Long

Dim strCol As String

Dim txt As String

'Initializing the variables

Set wks = Worksheets("Format")

intRow = 4

'Looping in 16th column until empty value is found

Do Until IsEmpty(wks.Cells(intRow, 16))



'Assigning the value of custom number format

txt = wks.Cells(intRow, 17)



'Looping and finding all the column number separated by comma(,)

Do Until InStr(txt, ",") = 0



'Getting the column number

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

'Assigning the number format

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

'Truncating the string for finding the next column number after the comma(,)

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

Loop



'Assigning the number format

Columns(CInt(txt)).NumberFormat = wks.Cells(intRow, 16).Value

intRow = intRow + 1

Loop

End Sub

Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.

[_GoBack] # Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]