Формат данных с помощью пользовательских числовых форматов с помощью VBA в Microsoft Excel
В этой статье мы создадим макрос для форматирования данных в желаемом пользовательском числовом формате с помощью VBA.
Исходные данные для этого примера состоят из данных отдела продаж. Исходные данные содержат имя, идентификатор продукта, цену продукта, проданное количество и общий объем продаж.
Перед запуском макроса необходимо указать пользовательский числовой формат в столбце P и номер столбца, в котором нужно применить пользовательский числовой формат в столбце Q.
Нажмите кнопку «Форматировать», чтобы запустить макрос «Форматирование».
Макрос изменит форматирование данных в соответствии с заданным пользовательским числовым форматом.
Логическое объяснение
Этот макрос выбирает форматирование чисел из столбца P и назначает форматирование чисел столбцам, указанным номерами столбцов в столбце Q.
В этом макросе мы используем два цикла DO UNTIL для цикла. Первый цикл DO UNTIL используется для цикла до тех пор, пока все числовые форматы не будут применены к столбцам. Второй цикл DO UNTIL используется для поиска всех различных номеров столбцов, указанных и разделенных запятыми (,).
Объяснение кода
strCol = Left (txt, InStr (txt, «,») — 1)
Приведенный выше код используется для отделения номера столбца от строки, которая содержит все номера столбцов, разделенных запятыми (,).
Столбцы (CInt (strCol)). NumberFormat = wks.Cells (intRow, 16). Value Приведенный выше код используется для применения пользовательского числового формата к указанному столбцу.
txt = Right (txt, Len (txt) — InStr (txt, «,»))
Приведенный выше код используется для отделения оставшейся строки после удаления номера столбца из определенной строки.
Пожалуйста, следуйте за кодом ниже
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
Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.
[_GoBack] # Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]