I denne artikel vil vi oprette en makro til at formatere de givne data i det ønskede brugerdefinerede talformat ved hjælp af VBA.
Rådata for dette eksempel består af salgsteamdata. Rådata indeholder navn, produkt -id, produktpris, solgt mængde og samlet salg.
Inden man kører makroen, skal man angive det tilpassede talformat i kolonne P og kolonnenummer, hvor man vil anvende det tilpassede talformat i kolonnen Q.
Klik på knappen "Format" for at køre makroen "Formatering".
Makro ændrer formateringen af de givne data i henhold til det angivne tilpassede talformat.
Logisk forklaring
Denne makro vælger nummerformateringen fra kolonnen P og tildeler nummerformateringen kolonner, der er angivet med kolonnetal i kolonnen Q.
I denne makro har vi brugt to DO UNTIL Loops til looping. Først GØR TIL Loop bruges til at sløjfe, indtil alle talformaterne anvendes på kolonner. Den anden DO UNTIL Loop bruges til at finde alle de forskellige kolonnenumre, der er angivet og adskilt med kommaer (,).
Kode forklaring
strCol = Venstre (txt, InStr (txt, ",") - 1)
Ovenstående kode bruges til at adskille kolonnenummeret fra strengen, der indeholder alle kolonnetallene adskilt af kommaer (,).
Kolonner (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Værdi
Ovenstående kode bruges til at anvende det tilpassede talformat på den angivne kolonne.
txt = Right (txt, Len (txt) - InStr (txt, ","))
Ovenstående kode bruges til at adskille den venstre venstre streng efter fjernelsen af kolonnetallet fra den definerede streng.
Følg venligst nedenstående for koden
Mulighed Eksplicit underformatering () 'Deklarationsvariabler Dim wks Som regneark Dim intRow As Long Dim strCol As String Dim txt As String' Initialisering af variablerne Set wks = regneark ("Format") intRow = 4 'Looping i 16. kolonne, indtil tom værdi er fundet Do Till IsEmpty (wks.Cells (intRow, 16)) 'Tildeling af værdien af brugerdefineret talformat txt = wks.Cells (intRow, 17)' Looping og find alt kolonnenummer adskilt med komma (,) Gør indtil InStr ( txt, ",") = 0 'Henter kolonnenummeret strCol = Venstre (txt, InStr (txt, ",") - 1)' Tildeling af talformatet Kolonner (CInt (strCol)). NumberFormat = wks.Cells (intRow , 16) .Værdi 'Afkortning af strengen for at finde det næste kolonnenummer efter kommaet (,) txt = Right (txt, Len (txt) - InStr (txt, ",")) Loop' Tildeling af talformatet Kolonner (CInt (txt)). NumberFormat = wks.Cells (intRow, 16) .Value intRow = intRow + 1 Loop End Sub
Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.
Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet