Formatee los datos con formatos numéricos personalizados usando VBA en Microsoft Excel

Anonim

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 el nombre, la identificación del producto, el precio del producto, la cantidad vendida y las ventas totales.

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".

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 de números 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 (,).

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

El código anterior se utiliza 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 para obtener el código

Opción Subformateo explícito () 'Declarando variables Dim wks As Worksheet Dim intRow As Long Dim strCol As String Dim txt As String' Inicializando las variables Set wks = Worksheets ("Format") intRow = 4 'Bucle en la 16ª columna hasta que el valor vacío sea found Do until IsEmpty (wks.Cells (intRow, 16)) 'Asignando el valor del formato de número personalizado txt = wks.Cells (intRow, 17)' Recorriendo y encontrando todo el número de columna separado por comas (,) Do until InStr ( txt, ",") = 0 'Obteniendo el número de columna strCol = Left (txt, InStr (txt, ",") - 1)' Asignando el formato numérico Columns (CInt (strCol)). NumberFormat = wks.Cells (intRow , 16) .Value 'Truncar la cadena para encontrar el siguiente número de columna después de la coma (,) txt = Right (txt, Len (txt) - InStr (txt, ",")) Loop' Asignar el formato numérico Columnas (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. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico