Formatieren Sie Daten mit benutzerdefinierten Zahlenformaten mit VBA in Microsoft Excel

Anonim

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

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

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

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

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

Logikerklärung

Dieses Makro wählt die Zahlenformatierung aus der Spalte P 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 durchlaufen, bis alle Zahlenformate auf die Spalten angewendet wurden. Die zweite DO UNTIL-Schleife wird verwendet, um alle verschiedenen Spaltennummern zu finden, die angegeben und durch Kommas (,) getrennt sind.

Codeerklärung

strCol = Left(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.

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

Der obige Code wird verwendet, um das benutzerdefinierte Zahlenformat auf die angegebene Spalte anzuwenden.

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

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

Bitte folgen Sie unten für den Code

Option Explicit Sub Formatting() 'Variablen deklarieren Dim wks As Worksheet Dim intRow As Long Dim strCol As String Dim txt As String 'Initialisieren der Variablen Set wks = Worksheets("Format") intRow = 4 'Schleife in der 16. Spalte, bis leerer Wert ist found Do Until IsEmpty(wks.Cells(intRow, 16)) 'Wert des benutzerdefinierten Zahlenformats txt zuweisen = wks.Cells(intRow, 17) 'Schleife und Suche aller Spaltennummern durch Komma getrennt (,) Do Until InStr( txt, ",") = 0 'Abrufen der Spaltennummer strCol = Left(txt, InStr(txt, ",") - 1) 'Zuweisen des Zahlenformats Columns(CInt(strCol)).NumberFormat = wks.Cells(intRow , 16).Value 'String zum Finden der nächsten Spaltennummer nach dem Komma(,) abschneiden txt = Right(txt, Len(txt) - InStr(txt, ",")) Loop 'Zuweisung des Zahlenformats 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. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site