W tym artykule utworzymy makro, aby sformatować podane dane w żądanym niestandardowym formacie liczbowym za pomocą VBA.
Surowe dane dla tego przykładu składają się z danych zespołu sprzedaży. Surowe dane zawierają nazwę, identyfikator produktu, cenę produktu, sprzedaną ilość i całkowitą sprzedaż.
Przed uruchomieniem makra należy określić niestandardowy format liczb w kolumnie P oraz numer kolumny, w której chcemy zastosować niestandardowy format liczb w kolumnie Q.
Kliknij przycisk „Format”, aby uruchomić makro „Formatowanie”.
Makro zmieni formatowanie podanych danych zgodnie z określonym niestandardowym formatem liczb.
Wyjaśnienie logiczne
To makro wybiera formatowanie liczb z kolumny P i przypisuje formatowanie liczb do kolumn określonych przez numery kolumn w kolumnie Q.
W tym makrze używamy dwóch pętli DO UNTIL do zapętlania. Najpierw DO UNTIL Pętla służy do zapętlania, aż wszystkie formaty liczb zostaną zastosowane do kolumn. Druga pętla DO UNTIL służy do znalezienia wszystkich różnych numerów kolumn określonych i oddzielonych przecinkami (,).
Wyjaśnienie kodu
strCol = Left(txt, InStr(txt, ",") - 1)
Powyższy kod służy do oddzielenia numeru kolumny od ciągu, który zawiera wszystkie numery kolumn oddzielone przecinkami (,).
Columns(CInt(strCol)).NumberFormat = wks.Cells(intRow, 16).Value
Powyższy kod służy do zastosowania niestandardowego formatu liczb w określonej kolumnie.
txt = Prawo(txt, Len(txt) - InStr(txt, ","))
Powyższy kod służy do oddzielenia pominiętego ciągu po usunięciu numeru kolumny ze zdefiniowanego ciągu.
Proszę postępować zgodnie z poniższym kodem!
Option Explicit Sub Formatting() 'Deklarowanie zmiennych Dim wks As Worksheet Dim intRow As Long Dim strCol As String Dim txt As String 'Inicjowanie zmiennych Set wks = Worksheets("Format") intRow = 4 'Pętla w 16-tej kolumnie do momentu pojawienia się pustej wartości found Do Until IsEmpty(wks.Cells(intRow, 16)) 'Przypisywanie wartości niestandardowego formatu liczb txt = wks.Cells(intRow, 17) 'Zapętlenie i znalezienie wszystkich numerów kolumn oddzielonych przecinkiem(,) Do Until InStr( txt, ",") = 0 'Pobieranie numeru kolumny strCol = Left(txt, InStr(txt, ",") - 1) 'Przypisywanie formatu liczby Columns(CInt(strCol)).NumberFormat = wks.Cells(intRow , 16).Value 'Obcinanie ciągu w celu znalezienia kolejnego numeru kolumny po przecinku(,) txt = Right(txt, Len(txt) - InStr(txt, ",")) Loop 'Przypisywanie formatu liczby Columns(CInt (txt)).NumberFormat = wks.Cells(intRow, 16).Value intRow = intRow + 1 Sub End pętli
Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.
Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail