значения ячеек преобразуются в числа вместо формата «000000» - PullRequest
1 голос
/ 11 марта 2019

У меня есть набор строк, хранящихся в массиве в формате «0123», но когда я пытаюсь передать их в ряд ячеек, ведущий теряется. Как сохранить исходное значение и формат массива? Например:

Range("B" & k + 9) = abc(k)  

Я пытался Range("B" & k + 9).value, Range("B" & k + 9).value2 и Range("B" & k + 9).text, все они дали мне то же самое, что является числовым значением без начального 0, например 123, а не 0123.

Я могу использовать функцию числового формата, чтобы косметически показать конечное значение, равное 0123, но то, что находится в ячейке, все еще просто 123. Как я могу включить ведущий 0?

1 Ответ

3 голосов
/ 11 марта 2019

Проблема здесь в том, что математически числа 0123 и 123 равны точно одному и тому же значению. Таким образом, если вы хотите рассчитать с ними должны номера пребывания и начальный 0 должны быть сгенерированы путем изменения .NumberFormat.

Range("A1").Value = 123
Range("A1").NumberFormat = "0000"

Если эти числа на самом деле рассматриваются как строки (например, серийные номера), с которыми вы не хотите рассчитывать, то вы можете сохранить их как строки, установив для .NumberFormat ячейки значение Text перед вы записываете в него значение:

Range("A1").NumberFormat = "@"
Range("A1").Value = "0123"

Если вы не измените .NumberFormat сначала , то Excel распознает, что вы записали числовое значение в ячейку, и автоматически преобразует вашу строку в числовое значение.

Обратите внимание, что вы не можете больше рассчитывать с этой ячейкой, потому что «число» теперь рассматривается как строка. Поэтому первый метод рекомендуется для чисел.

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