În acest articol, vom crea o macro pentru a formata datele date în formatul de număr personalizat dorit folosind VBA.
Datele brute pentru acest exemplu constau în date despre echipa de vânzări. Datele brute conțin numele, codul produsului, prețul produsului, cantitatea vândută și vânzările totale.
Înainte de a rula macrocomanda, trebuie să specificați formatul numărului personalizat în coloana P și numărul coloanei în care doriți să aplicați formatul numărului personalizat în coloana Q.
Faceți clic pe butonul „Format” pentru a rula macrocomanda „Formatare”.
Macro va modifica formatarea datelor date în funcție de formatul de număr personalizat specificat.
Explicație logică
Această macrocomandă selectează formatarea numerelor din coloana P și atribuie formatarea numerelor coloanelor specificate de numerele coloanei din coloana Q.
În această macro, am folosit două bucle DO UNTIL pentru buclă. În primul rând DO UNTIL Loop este folosit pentru a face loop până când toate formatele numerice sunt aplicate coloanelor. A doua buclă DO PÂNĂ Până când este utilizată pentru a găsi toate numerele diferite de coloane specificate și separate prin virgule (,).
Explicarea codului
strCol = Left (txt, InStr (txt, ",") - 1)
Codul de mai sus este utilizat pentru a separa numărul coloanei de șirul care conține toate numerele coloanei separate prin virgule (,).
Coloane (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Value
Codul de mai sus este utilizat pentru a aplica formatul de număr personalizat pe coloana specificată.
txt = Right (txt, Len (txt) - InStr (txt, ","))
Codul de mai sus este folosit pentru a separa șirul lăsat după eliminarea numărului de coloană de șirul definit.
Vă rugăm să urmați codul de mai jos
Opțiune Subformatare explicită () 'Declararea variabilelor Dim wks Ca foaie de lucru Dim intRow Ca lung Dim strCol Ca șir Dim txt Ca șir' Initializarea variabilelor Set wks = Worksheets ("Format") intRow = 4 'Buclare în coloana a 16-a până când valoarea goală este găsit Do Until IsEmpty (wks.Cells (intRow, 16)) 'Atribuirea valorii formatului numărului personalizat txt = wks.Cells (intRow, 17)' Buclarea și găsirea tuturor numărului coloanei separate prin virgulă (,) Do Until InStr ( txt, ",") = 0 'Obținerea numărului de coloană strCol = Stânga (txt, InStr (txt, ",") - 1)' Atribuirea formatului numărului Coloane (CInt (strCol)). NumberFormat = wks.Cells (intRow , 16) .Value 'Trunchierea șirului pentru găsirea următorului număr de coloană după virgulă (,) txt = Dreapta (txt, Len (txt) - InStr (txt, ",")) Buclă' Atribuirea formatului numărului Coloane (CInt (txt)). NumberFormat = wks.Cells (intRow, 16) .Value intRow = intRow + 1 Loop End Sub
Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.
Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail