Formater data med tilpassede tallformater ved hjelp av VBA i Microsoft Excel

Innholdsfortegnelse

I denne artikkelen vil vi lage en makro for å formatere de oppgitte dataene i ønsket tilpasset tallformat ved hjelp av VBA.

Rådata for dette eksemplet består av salgsteamdata. Rådata inneholder navn, produkt -ID, produktpris, solgt mengde og totalt salg.

Før du kjører makroen, må du angi det egendefinerte tallformatet i kolonne P og kolonnummer der du vil bruke det egendefinerte tallformatet i kolonnen Q.

Klikk på "Format" -knappen for å kjøre "Formatering" -makroen.

Makro vil endre formateringen av de gitte dataene i henhold til det angitte egendefinerte tallformatet.

Logisk forklaring

Denne makroen plukker tallformateringen fra kolonnen P og tildeler tallformateringen til kolonner som er angitt av kolonnetall i kolonnen Q.

I denne makroen har vi brukt to DO UNTIL Loops for looping. Først DO UNTIL Loop brukes til å sløyfe til alle tallformatene er brukt på kolonner. Den andre DO UNTIL Loop brukes til å finne alle de forskjellige kolonnetallene som er angitt og atskilt med kommaer (,).

Kode forklaring

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

Koden ovenfor brukes til å skille kolonnenummeret fra strengen som inneholder alle kolonnetallene atskilt med kommaer (,).

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

Koden ovenfor brukes til å bruke det egendefinerte tallformatet på den angitte kolonnen.

txt = Høyre (txt, Len (txt) - InStr (txt, ","))

Koden ovenfor brukes til å skille den venstre venstre streng etter fjerning av kolonnetallet fra den definerte strengen.

Følg koden nedenfor

Alternativ Eksplisitt underformatering () 'Deklarasjonsvariabler Dim wks Som regneark Dim intRow As Long Dim strCol As String Dim txt As String' Initialiserer variablene Sett wks = Arbeidsark ("Format") intRow = 4 'Sløyfe i 16. kolonne til tom verdi er funnet Do Do Is Ismpty (wks.Cells (intRow, 16)) 'Tilordne verdien til egendefinert tallformat txt = wks.Cells (intRow, 17)' Looping og finne alt kolonnenummer atskilt med komma (,) Gjør inntil InStr ( txt, ",") = 0 'Henter kolonnenummeret strCol = Venstre (txt, InStr (txt, ",") - 1)' Tilordner tallformatet Kolonner (CInt (strCol)). NumberFormat = wks.Cells (intRow , 16) .Value 'Truncating the string for finding the next column number after the komma (,) txt = Right (txt, Len (txt) - InStr (txt, ",")) Loop' Tildeling av tallformatet Kolonner (CInt (txt)). NumberFormat = wks.Cells (intRow, 16) .Value intRow = intRow + 1 Loop End Sub

Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.

Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave