In questo articolo, creeremo una macro per formattare i dati forniti nel formato numerico personalizzato desiderato utilizzando VBA.

I dati grezzi per questo esempio sono costituiti dai dati del team di vendita. I dati grezzi contengono nome, ID prodotto, prezzo del prodotto, quantità venduta e vendite totali.

ArrowRawData

Prima di eseguire la macro, è necessario specificare il formato del numero personalizzato nella colonna P e il numero della colonna in cui si desidera applicare il formato del numero personalizzato nella colonna Q.

Fare clic sul pulsante “Formato” per eseguire la macro “Formattazione”.

ArrowAfterRunningMacro

La macro cambierà la formattazione dei dati forniti in base al formato numerico personalizzato specificato.

Spiegazione logica

Questa macro seleziona la formattazione del numero dalla colonna P e assegna la formattazione del numero alle colonne specificate dai numeri di colonna nella colonna Q.

In questa macro, abbiamo usato due cicli DO UNTIL per il loop. Per prima cosa DO UNTIL Loop viene utilizzato per eseguire il ciclo finché tutti i formati numerici non vengono applicati alle colonne. Il secondo ciclo DO UNTIL viene utilizzato per trovare tutti i diversi numeri di colonna specificati e separati da virgole (,).

Spiegazione del codice

strCol = Left (txt, InStr (txt, “,”) – 1)

Il codice sopra viene utilizzato per separare il numero di colonna dalla stringa che contiene tutti i numeri di colonna separati da virgole (,).

Colonne (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Value Il codice sopra viene utilizzato per applicare il formato numerico personalizzato alla colonna specificata.

txt = Right (txt, Len (txt) – InStr (txt, “,”))

Il codice sopra viene utilizzato per separare la stringa esclusa dopo la rimozione del numero di colonna dalla stringa definita.

Segui sotto per il codice

Option Explicit

Sub Formatting()

'Declaring variables

Dim wks As Worksheet

Dim intRow As Long

Dim strCol As String

Dim txt As String

'Initializing the variables

Set wks = Worksheets("Format")

intRow = 4

'Looping in 16th column until empty value is found

Do Until IsEmpty(wks.Cells(intRow, 16))



'Assigning the value of custom number format

txt = wks.Cells(intRow, 17)



'Looping and finding all the column number separated by comma(,)

Do Until InStr(txt, ",") = 0



'Getting the column number

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

'Assigning the number format

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

'Truncating the string for finding the next column number after the comma(,)

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

Loop



'Assigning the number format

Columns(CInt(txt)).NumberFormat = wks.Cells(intRow, 16).Value

intRow = intRow + 1

Loop

End Sub

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

[_GoBack] # Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]