В тази статия ще създадем макрос за форматиране на дадените данни в желания формат на персонализиран номер, използвайки VBA.
Суровите данни за този пример се състоят от данни на екипа по продажбите. Суровите данни съдържат име, идентификатор на продукта, цена на продукта, продадено количество и общи продажби.
Преди да стартирате макроса, трябва да посочите формата на персонализирания номер в колона P и номера на колоната, в която искате да приложите формата на персонализирания номер в колоната Q.
Щракнете върху бутона „Форматиране“, за да стартирате макроса „Форматиране“.
Макросът ще промени форматирането на дадените данни в съответствие с посочения формат на персонализиран номер.
Логично обяснение
Този макрос избира форматирането на числа от колоната P и присвоява форматирането на номера на колони, посочени от номерата на колоните в колоната Q.
В този макрос използваме два цикъла DO UNTIL за цикли. Първо DO UNTIL Loop се използва за цикъл, докато всички формати на числата се приложат към колони. Вторият DO UNTIL Loop се използва за намиране на всички различни номера на колони, посочени и разделени със запетаи (,).
Обяснение на кода
strCol = Наляво (txt, InStr (txt, ",") - 1)
Горният код се използва за отделяне на номера на колоната от низ, който съдържа всички номера на колони, разделени със запетаи (,).
Колони (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16).
Горният код се използва за прилагане на персонализирания формат на номер към посочената колона.
txt = Вдясно (txt, Len (txt) - InStr (txt, ","))
Горният код се използва за отделяне на оставения низ след премахването на номера на колоната от дефинирания низ.
Моля, следвайте кода по -долу
Опция Изрично подформатиране () „Деклариране на променливи Dim wks като работен лист Dim intRow As Long Dim strCol As String Dim txt As String“ Инициализиране на променливите Set wks = Worksheets ("Format") intRow = 4 'Циклиране в 16 -та колона, докато празната стойност е намерено Do Do IsEmpty (wks.Cells (intRow, 16)) „Присвояване на стойността на формат на персонализирано число txt = wks.Cells (intRow, 17)“ Циклиране и намиране на целия номер на колоната, разделен със запетая (,) Do Until InStr ( txt, ",") = 0 'Получаване на номера на колоната strCol = Наляво (txt, InStr (txt, ",") - 1)' Присвояване на числови формати на колони (CInt (strCol)). NumberFormat = wks.Cells (intRow , 16) .Value 'Съкращаване на низ за намиране на номера на следващата колона след запетаята (,) txt = Right (txt, Len (txt) - InStr (txt, ",")) Loop' Присвояване на числовия формат Колони (CInt (txt)). NumberFormat = wks.Cells (intRow, 16) .Value intRow = intRow + 1 Loop End Sub
Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим работата си и да я направим по -добра за вас. Пишете ни на имейл сайта