Я хотел бы иметь быстрый однострочный VBA-код для дополнения числа в строковой форме, чтобы длина всегда была кратна 3.
Например:
«12» становится «012»
«1234» становится «001234»
«1234567» становится «001234567»
"12345678912345678" становится "012345678912345678"
и т. Д.
В числовой строке не будет ни дробных, ни десятичных точек, так что об этом не стоит беспокоиться.
Длина результирующей строки должна быть кратна 3, если добавить 0 слева.
Числовая строка должна оставаться строкой на протяжении всего кодирования и не должна преобразовываться в число с помощью числовой функции, такой как Val, поскольку исходная строка может быть очень длинной более 150 цифр, а числовая функция может обрезать или округлять номер и дать нежелательные результаты.
Я предложил следующее как возможное решение, проверив длину строки, но чувствую, что есть более эффективный способ сделать это в одном (1) операторе кодирования.
Result = String((3 - (Len(MyString) Mod 3)) Mod 3, "0") & MyString