Проблема здесь в том, что математически числа 0123
и 123
равны точно одному и тому же значению. Таким образом, если вы хотите рассчитать с ними должны номера пребывания и начальный 0
должны быть сгенерированы путем изменения .NumberFormat
.
Range("A1").Value = 123
Range("A1").NumberFormat = "0000"
Если эти числа на самом деле рассматриваются как строки (например, серийные номера), с которыми вы не хотите рассчитывать, то вы можете сохранить их как строки, установив для .NumberFormat
ячейки значение Text
перед вы записываете в него значение:
Range("A1").NumberFormat = "@"
Range("A1").Value = "0123"
Если вы не измените .NumberFormat
сначала , то Excel распознает, что вы записали числовое значение в ячейку, и автоматически преобразует вашу строку в числовое значение.
Обратите внимание, что вы не можете больше рассчитывать с этой ячейкой, потому что «число» теперь рассматривается как строка. Поэтому первый метод рекомендуется для чисел.