Функция Pad для денежных значений в VBA - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь сделать что-то вроде str_pad функции в VBA, возвращая ведущие нули впереди денежных значений.

Например, если я хочу дополнить его 6 цифрами:

Input:
$ 423,67
Output:
000423

Пока что он может добавить эти ведущие нули, но я не могу найти способ реализовать его, когда у него нет десятичных дробей:

Input:
$ 423,00
Current output:
000423
Desired output:
042300

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

Код:

Function str_pad(text As Variant, totalLength As Integer, padCharacter As String) As String
    If totalLength > Len(CStr(text)) Then
        'str_pad = String(totalLength - Len(CStr(text)), padCharacter) & CStr(text)
    Else
        str_pad = text
    End If
End Function

1 Ответ

0 голосов
/ 01 мая 2018

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

Function str_pad(text As Variant, padCharacter As String) As String
        str_pad = Format(text, "0000.00")
        str_pad = Replace(str_pad, ".", "")
End Function

Чтобы использовать это, вы можете использовать формулу, такую ​​как: =str_pad(A1,0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...