Номер формата Excel VBA

VBA поставляется со встроенной функцией для форматирования чисел. Название этой встроенной функции - «Формат номера». Эта функция форматирует конкретный номер в формате, который требуется пользователю.
Прежде чем мы продолжим, давайте сначала поймем, что такое форматирование чисел. Форматирование чисел в основном означает, что конкретное число должно быть показано определенным образом. Например, если вы хотите увидеть конкретное число с точки зрения двух десятичных знаков (150, 55) или вы хотите видеть одно и то же число с точки зрения без десятичного знака (150). Это всего лишь примеры. По сути, мы можем классифицировать эти числовые форматы по четырем категориям.

  • Десятичные точки
  • Отрицательные числа в скобках
  • Ведущие цифры
  • Групповые цифры

Мы собираемся изучить все форматирования в VBA с помощью примеров. Но сначала давайте взглянем на синтаксис функции VBA для формата числа.

Так как вы можете увидеть синтаксис функции VBA для номера формата на скриншоте выше, давайте разберем эту функцию и поймем каждую часть функции.

  1. Выражение: Как вы можете видеть, первая часть функции - это выражение, которое является ничем иным, как числом, которое мы хотим отформатировать.
  2. Цифра после десятичной дроби: вторая часть функции запрашивает количество цифр числа, которое вы хотите видеть после десятичной точки.
  3. Начальная цифра: это полезно, когда число находится в диапазоне от -1 до 1, что означает, что число больше -1 и меньше 1. Например, 0, 25.

Поэтому, если вы хотите увидеть нулевое значение перед десятичной точкой, вам нужно вставить аргумент в функцию как ИСТИНА или -1. Результат будет 0, 55.

Но если вы вставите значение в аргумент как FALSE или 0, результат будет .55.

  1. Использовать родитель для отрицательных чисел : эта часть используется для отрицательных чисел. Если вы хотите видеть отрицательные числа в скобках, вам следует указать аргумент как ИСТИНА или -1, и результат будет (156). Но если вы укажете аргумент как FALSE или 0, результат будет -156.
  2. Групповые цифры : это последняя часть функции, которая используется для разделителей тысяч. Поэтому, если вы хотите видеть числа с разделителем тысяч, вы должны указать аргумент как TRUE или -1, и в результате вы получите 52 000. Но если вы предоставите тот же аргумент, что и FALSE или 0, результат будет равен 52000.

Как отформатировать номер с использованием кода VBA?

Теперь, когда вы понимаете различные формы форматирования чисел и встроенную функцию VBA формата чисел, мы можем пойти дальше и посмотреть, как мы можем использовать это с помощью примеров.

Вы можете скачать этот шаблон Excel в формате VBA здесь - Шаблон Excel в формате VBA

Прежде чем перейти к примерам, выполните следующие основные шаги, если вы новичок в макросе VBA. Вы можете вставить приведенные ниже коды в модуль VBA.

Шаг 1: Создайте имя макроса, которое является первой строкой в ​​коде, как вы можете видеть на скриншоте.

Шаг 2: Объявите одну из переменных как String, потому что результатом, полученным с помощью числовой функции формата VBA, является String.

Код:

 Sub Format_Number_Example1 () Dim MyNum As String End Sub 

Теперь мы можем продолжить с нашими примерами.

Десятичные точки - Пример № 1

Предположим, мы работаем с номером 56456, и вы хотите увидеть два числа после десятичной точки.

Шаг 1: В коде вы можете добавить встроенную функцию VBA, как показано ниже.

Mynum = Formatnumber (

Шаг 2: Как вы знаете, первый шаг функции - это выражение, которое является ничем иным, как числом, которое вы хотите отформатировать. 56456 в нашем случае.

Mynum = Formatnumber (56456,

Шаг 3: Следующий шаг - Numdigitafterdecimal, который представляет собой не что иное, как количество цифр, которые вы хотите видеть после десятичной точки, которая в нашем случае равна 2

Код:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (56456, 2) MsgBox MyNum End Sub 

Шаг 4 : Следующий шаг - показать номер в окне сообщения. VBA имеет встроенную функцию для отображения значения в окне сообщения, которое является MSGBOX.

Так что вам просто нужно вставить код ниже после вставки функции номера формата для MyNum.

Код:

 Sub Format_Number_Example1 () Dim MyNum As String MyNum = FormatNumber (56456, 2) MsgBox MyNum End Sub 

Как вы можете видеть, последняя строка в коде - End Sub, что означает, что код VBA для макроса заканчивается после этого.

Шаг 6: Когда кодирование для номера формата заканчивается, вы можете запустить макрос и увидеть результат ниже после запуска макроса.

Разделитель тысяч - Пример №2

Теперь предположим, что в том же примере нам нужно показать то же число 56456 с тысячами разделителей. В этом случае нам нужно дать последний аргумент как «vbTrue», как показано на скриншоте ниже.

Код:

Sub Format_Number_Example2 ()

Dim MyNum As String

MyNum = FormatNumber (56456, 2,,, vbTrue)

MsgBox MyNum

End Sub

После запуска макроса вы сможете увидеть результат ниже.

Если вы выберете «vbFalse» в качестве последнего аргумента, число не будет отображаться как разделитель тысяч.

Показать отрицательное число в скобках - пример № 3

Предположим, что то же число 56456 в приведенном выше примере является отрицательным, и вам нужно показать отрицательные числа в скобках, тогда четвертый аргумент в функции должен быть «vbTrue», как показано на скриншоте ниже.

Код:

 Sub Format_Number_Example3 () Dim MyNum As String MyNum = FormatNumber (-56456, 2,, vbTrue, vbTrue) MsgBox MyNum End Sub 

Как вы можете видеть, четвертый и пятый аргументы в коде - это «vbTrue», что означает, что форматирование для отрицательного числа (четвертый аргумент) и форматирование для тысяч разделителей (пятый аргумент) оба имеют значение True. Таким образом, вы увидите отрицательное число в скобках и с разделителями тысяч, как показано на скриншоте ниже.

Форматирование числа от -1 до 1 - пример № 4

Предположим, что число составляет 0, 567, что находится между -1 и 1, тогда у вас есть два варианта форматирования числа. Первый вариант - показывать ноль перед запятой или не показывать ноль перед запятой.

Если вы выберете опцию, чтобы показывать ноль перед десятичной запятой, вы должны предоставить третий аргумент в функции как «vbTrue», как показано на скриншоте ниже.

Код:

 Sub Format_Number_Example4 () Dim MyNum As String MyNum = FormatNumber (0.567, 2, vbTrue, vbTrue, vbTrue) MsgBox MyNum End Sub 

Вы сможете увидеть результат ниже после выполнения макроса кода.

Как видите, результат показывает только две цифры после десятичной точки, потому что мы указали только 2 в качестве второго аргумента в функции.

Если вы выберете третий аргумент как «vbFalse», как показано на скриншоте ниже.

Код:

 Sub Format_Number_Example5 () Dim MyNum As String MyNum = FormatNumber (0.567, 2, vbFalse, vbTrue, vbTrue) MsgBox MyNum End Sub 

Тогда вы не увидите ноль перед десятичной точкой, как показано на скриншоте ниже.

То, что нужно запомнить

  • Функция VBA FormatNumber имеет 5 аргументов, поэтому убедитесь, что вы указали правильные аргументы в порядке следования функции. Мы должны следовать порядку функции, другого выхода нет.
  • Если вы оставите один из аргументов пустым, он автоматически рассмотрит опцию VBA по умолчанию.
  • Будьте осторожны с аргументами vbTrue и vbFalse для последних трех аргументов для форматирования чисел.
  • Для первого аргумента, который является выражением, вы также можете указать ссылку на ячейку в листе Excel вместо любого числа.

Рекомендуемые статьи

Это руководство по формату VBA. Здесь мы обсудим, как форматировать числа в Excel с использованием кода VBA, а также с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи-

  1. Как использовать функцию VBA TRIM?
  2. VBA Arrays | Полный учебник
  3. Как использовать VBA Select Case?
  4. Функция Excel VBA Find

Категория: