Formatera data med anpassade nummerformat med VBA i Microsoft Excel

Anonim

I den här artikeln kommer vi att skapa ett makro för att formatera givna data i önskat anpassat nummerformat med VBA.

Rådata för detta exempel består av säljteamdata. Raw data innehåller namn, produkt -id, produktpris, såld mängd och total försäljning.

Innan du kör makrot måste du ange det anpassade nummerformatet i kolumn P och kolumnnummer där man vill använda det anpassade nummerformatet i kolumnen Q.

Klicka på "Format" -knappen för att köra "Formatering" -makrot.

Makro kommer att ändra formateringen av den angivna data enligt det angivna anpassade nummerformatet.

Logisk förklaring

Detta makro väljer nummerformatering från kolumnen P och tilldelar nummerformatet till kolumner som anges av kolumnnummer i kolumnen Q.

I detta makro har vi använt två DO UNTIL Loops för looping. Först DO TILL Loop används för att loopa tills alla nummerformat har tillämpats på kolumner. Den andra DO UNTIL Loop används för att hitta alla de olika kolumnnumren som anges och separeras med kommatecken (,).

Kodförklaring

strCol = Vänster (txt, InStr (txt, ",") - 1)

Ovanstående kod används för att separera kolumnnumret från strängen som innehåller alla kolumnnumren åtskilda med kommatecken (,).

Kolumner (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Värde

Ovanstående kod används för att tillämpa det anpassade nummerformatet på den angivna kolumnen.

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

Ovanstående kod används för att separera den utelämnade strängen efter att kolumnnumret har tagits bort från den definierade strängen.

Följ koden nedan

Alternativ Explicit delformatering () 'Deklarationsvariabler Dim wks As Worksheet Dim intRow As Long Dim strCol As String Dim txt As String' Initiera variablerna Ställ in wks = Worksheets ("Format") intRow = 4 'Looping i 16: e kolumn tills tomt värde är funnen Do Till IsEmpty (wks.Cells (intRow, 16)) 'Tilldela värdet för anpassat talformat txt = wks.Cells (intRow, 17)' Looping och hitta alla kolumnnumren åtskilda med komma (,) Gör tills InStr ( txt, ",") = 0 'Skaffa kolumnnumret strCol = Left (txt, InStr (txt, ",") - 1)' Tilldela nummerformatet Columns (CInt (strCol)). NumberFormat = wks.Cells (intRow , 16) .Värde 'Trunkera strängen för att hitta nästa kolumnnummer efter kommatecken (,) txt = Right (txt, Len (txt) - InStr (txt, ",")) Loop' Tilldela nummerformatet Columns (CInt (txt)). NumberFormat = wks.Cells (intRow, 16) .Value intRow = intRow + 1 Loop End Sub

Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.

Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen