In diesem Artikel erstellen wir ein Makro, um die angegebenen Daten mit VBA im gewünschten benutzerdefinierten Zahlenformat zu formatieren.

Die Rohdaten für dieses Beispiel bestehen aus Verkaufsteamdaten. Die Rohdaten enthalten Name, Produkt-ID, Produktpreis, verkaufte Menge und Gesamtumsatz.

ArrowRawData

Vor dem Ausführen des Makros muss das benutzerdefinierte Nummernformat in Spalte P und die Spaltennummer angegeben werden, in der das benutzerdefinierte Nummernformat in Spalte Q angewendet werden soll.

Klicken Sie auf die Schaltfläche „Formatieren“, um das Makro „Formatieren“ auszuführen.

ArrowAfterRunningMacro

Das Makro ändert die Formatierung der angegebenen Daten entsprechend dem angegebenen benutzerdefinierten Zahlenformat.

Logische Erklärung

Dieses Makro wählt die Zahlenformatierung aus der Spalte P aus und weist die Zahlenformatierung den Spalten zu, die durch die Spaltennummern in der Spalte Q angegeben werden.

In diesem Makro haben wir zwei DO UNTIL-Schleifen zum Schleifen verwendet. Die erste DO UNTIL-Schleife wird verwendet, um eine Schleife zu erstellen, bis alle Zahlenformate auf Spalten angewendet wurden. Die zweite DO UNTIL-Schleife wird verwendet, um alle verschiedenen Spaltennummern zu finden, die durch Kommas (,) angegeben und getrennt sind.

Code Erklärung

strCol = Links (txt, InStr (txt, „,“) – 1)

Der obige Code wird verwendet, um die Spaltennummer von der Zeichenfolge zu trennen, die alle durch Kommas (,) getrennten Spaltennummern enthält.

Spalten (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16) .Wert Der obige Code wird verwendet, um das benutzerdefinierte Zahlenformat auf die angegebene Spalte anzuwenden.

txt = Rechts (txt, Len (txt) – InStr (txt, „,“))

Der obige Code wird verwendet, um die ausgelassene Zeichenfolge nach dem Entfernen der Spaltennummer von der definierten Zeichenfolge zu trennen.

Bitte folgen Sie unten für den Code

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

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook und Facebook.

[_GoBack] # Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]